Method for selectively advertising items in an image

ABSTRACT

One variation of a method for selectively advertising items in an image includes: loading an image to a social feed; receiving a first tag and a second tag including identification of a first item and a second item visible in the image, respectively; based on the first tag and the second tag, correlating the first item with a first product and the second item with the second product; based on the first product and the second product, sourcing a first link to a first electronic storefront and a second link to a second electronic storefront that facilitate purchase of the first product and the second product, respectively; and selectively displaying a first visual cue of the first link and a second visual cue of the second link to a first user and to a second user, respectively, according to demographics of the first user and the second user.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is related to: U.S. Patent Application No. 61/849,813,filed on 31 Jan. 2013 and titled “METHODS FOR ENABLING GIFT CARDTRANSACTIONS”; U.S. patent application Ser. No. 12/890,283, filed 24Sep. 2010 and titled “Auto Tagging in Geo-Social Networking System”;U.S. patent application Ser. No. 12/978,265, filed on 23 Dec. 2010 andtitled “Contextually Relevant Affinity Prediction in a Social NetworkingSystem”; U.S. patent application Ser. No. 13/239,340, filed on 21 Sep.2011 and titled “Structured Objects and Actions on a Social NetworkingSystem”; U.S. patent application Ser. No. 12/508,521, filed on 23 Jul.2009 and titled “Markup Language for Incorporating Social NetworkingInformation by an External Website”; U.S. Pat. No. 8,250,145, issued on21 Aug. 2012 and titled “Personalizing a Web Page Outside of a SocialNetworking System with Content from the Social Networking System”; U.S.patent application Ser. No. 12/969,368, filed on 15 Dec. 2010 and titled“Comment Plug-In for Third Party System”; U.S. patent application Ser.No. 12/253,149, filed on 16 Oct. 2008 and titled “Resource Management ofSocial Network Application”; U.S. patent application Ser. No.12/154,886, filed on 27 May 2008 and titled “Systems and methods forproviding privacy settings for applications associated with a userprofile”; and U.S. patent application Ser. No. 13/167,702, filed on 24Jun. 2011 and titled “Suggesting Tags in Status Messages Based On SocialContext”, all of which are incorporated herein in their entirety by thisreference.

TECHNICAL FIELD

This invention relates generally to the field of online advertising, andmore specifically to a new and useful method for linking images insocial feeds to branded content in the field of online advertising.

BACKGROUND

Billions of dollars are spent annually on online advertising in theUnited States alone with the hope that such marketing will influenceviewers to purchase products. In fact, online advertising is a coresource of income for many Internet-based companies, both large andsmall, and the anticipated or estimated effectiveness of these onlineadvertisements in influencing viewers to transact with merchants isoften cited as justification for such marketing. However, professionaladvertising campaigns are both expensive and not always representativeof a fit, form, function, or use of an advertised product.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a flowchart representation of a first method of oneembodiment;

FIGS. 2 and 3 are flowchart representations of two variations of thefirst method;

FIG. 4 is a flowchart representation of a second method of oneembodiment;

FIGS. 5 and 6 are flowchart representations of two variations of thesecond method;

FIG. 7 is a flowchart representation of a third method of oneembodiment;

FIG. 8 is a flowchart representation of one variation of the thirdmethod;

FIG. 9 is a block diagram of a system environment for a socialnetworking system;

FIG. 10 is a block diagram of a system architecture of the socialnetworking system;

FIGS. 11 and 12 are flowchart representations of two variations of thefirst method;

FIGS. 13 and 14 are flowchart representations of two variations of thesecond method; and

FIG. 15 is a flowchart representation of one variation of the thirdmethod.

DESCRIPTION OF THE EMBODIMENTS

The following description of the embodiments of the invention is notintended to limit the invention to these embodiments, but rather toenable any person skilled in the art to make and use this invention.

1. First Method

As shown in FIG. 1, a first method S100 for linking images in socialfeeds to branded content includes: loading an image to a socialnetworking system in Block S110; receiving, from a first user, a tagincluding identification of an item visible in a particular region ofthe image in Block S120; associating the tag with the particular regionof the image in Block S130; based on the tag, correlating the item witha particular brand in Block S140A; posting the image to a social feed ofthe particular brand within the social networking system in Block S150A;and, in response to interaction with the image in the social feed by asecond user, directing the second user to brand content specified by theparticular brand in Block S160A.

As shown in FIG. 2, one variation of first method S100 includes: loadingan image to a social networking system in Block S110; receiving, from afirst user, a tag including identification of an item visible in aparticular region of the image in Block S120; associating the tag withthe particular region of the image in Block S130; based on the tag,correlating the item with a product in Block S140B; posting the image toa social feed within the social networking system in Block S150B, thesocial feed including photos related to the product; and, in response tointeraction with the image in the social feed by a second user,directing the second user to an electronic storefront through which topurchase the product in Block S160B.

Generally, as shown in FIG. 11, first method S100 functions to tag animage in a social feed with brand-related metadata, to define a link (or“hotspot”) within the image to brand content, and to direct a user(i.e., a second user) to brand content through the link in the image.Similarly, as shown in FIG. 12, the variation of first method S100functions to tag an image in a social feed with product-relatedmetadata, to define a link within the image to a product storefront, andto direct a user (i.e., a second user) to the product storefront throughthe link in the image. Therefore, first method S100 enables users toupload images to a social feed within a social networking system (e.g.,Instagram, Facebook) and to incorporate links to brands or productswithin the image such that other users can access brand or productinformation directly through the image shown in a social (image-based)feed.

In one implementation, the image is a professional (i.e., official)advertisement image, such as uploaded by a merchant or brand as part ofa marketing campaign for the merchant, the brand, the product, a productline, a store location, etc., as shown in FIG. 11. In thisimplementation, the image can assume the role of a visual advertisementwhile accommodating the form factor and visual ‘language’ of otherimages in the social feed, which may be amateur images, thereby avoidingsubstantial disruption to the flow of the social feed or to a userviewing experience within the social feed. For example, the image caninclude a professional image of a branded soda can by Brand X, whereinthe whole image is tagged with Brand X and linked to a social feed ofBrand X within the social networking system such that a user can clickanywhere on the image to be directed to Brand X's social feed.

In another implementation, the image is an amateur (i.e., unofficial)image, such as a digital photograph captured with a smartphone anduploaded to the social networking system, by a user, though a nativeapplication executing on the smartphone, as shown in FIG. 12. In thisimplementation, once the image is uploaded to a social feed within thesocial networking system, the user, any other user, the brand, themerchant, etc. can add tags to the image, such as to specific regions ofthe image, wherein each tag can define a link to a product page, brandpage, storefront, etc. through which another user can learn about abrand, purchase a product, etc. Therefore, in this implementation, theimage can assume the role of an advertisement for a product, brand,merchant, etc. despite the origin of the image that is unaffiliated withthe product, brand, merchant, etc. In one example, a first private useruploads the image that includes an amateur photograph of a woman on abeach wearing a bathing suit by Brand Y and holding a branded soda canby Brand X. In this example, a second private user tags a first portionof the photograph depicting the branded soda with Brand X, and arepresentative of Brand Y tags a second portion of the photographdepicting the swimsuit with an online store that sells Brand Y products.Furthermore, in this example, when a third user clicks on the firstportion of the image, Block S160A can direct the third user to a socialfeed of Brand X within the social networking system, and, when the thirduser clicks on the second portion of the image, Block S160B can directthe third user to an online store in which the third user can order anidentical or similar swimsuit. Generally, first method S100 enablesprivate users and/or commercial entities to link regions of an image ina social feed to a new page, background page, application, applet,pop-up, or other interface or menu through which users can accessadditional brand and/or product information.

Furthermore, the image can include representations of any suitable typeof product. In one example implementation, the image depicts a tangiblegood, such as a blouse, a pair of shoes, a vehicle, a chair, a rug, awatch, or a smartphone. In a similar example implementation, the imagedepicts an electronic good, such as a video game, an electroniccurrency, or loyalty points for an airline. In another exampleimplementation, the image depicts a consumable good, such as a can ofsoda, a cupcake, a bottle of water, vegetables, or uncooked brown rice.In yet another example implementation, the image depicts a service, suchas a massage, an airline, or a cable or Internet service. In a furtherexample implementation, the image depicts a location, such as a touristattraction, a restaurant, a city, a museum, or a school. In anotherexample implementation, the image depicts an event, such as a sportingevent or a party. However, the image can depict any other suitableproduct that can be identified and tagged in the image.

First method S100 can be implemented by a computer system, such asthrough an online photo-sharing platform or a social networking systemthat executes on the computer system and uploads photos to social feeds,displays the photos to various users, such as based on usersubscriptions, “follows,” or connections to other users within theplatform or network, and enables advertising to users through taggedphotos. The computer system can be a cloud-based computer (e.g., AmazonEC2), a mainframe computer system, a grid-computer system, or any othersuitable computer system. As described above, the computer system cansupport photo sharing within a social feed, wherein at least one photoin the social feed functions as an electronic advertisement to link auser to additional brand, product, merchant, or store content. Forexample, the computer system can upload a photo and associated tags overa distributed network, such as over the Internet, and one or moreprocessors throughout the distributed network can implement one or moreBlocks of first method S100 to post the photo to the social feed and todirect a user from the photo to additional related content. The computersystem can also incorporate a user interface, a product interface, abrand interface, etc. For example, the brand can access the brandinterface to curate a brand feed within the platform, upload new photos,arrange or rank official branded photos, arrange or rank unofficialphotos with related tags, etc. Similarly, a user can access the userinterface to upload and tag a photo, review his social feed, access thebrand's social feed, etc. The user, merchant, and/or brand interfacescan each be accessible through a web browser, through a nativeapplication executing on a computing device (e.g., a laptop computer, adesktop computer, a tablet, a smartphone, a personal data assistant(PDA), a personal music player, etc.), through enterprise management orsales software, etc., any of which can be internal or external thesocial networking system or photo-sharing platform. However, firstmethod S100 can be implemented by any other computer system, service,network, etc. and can include any other interface to supportadvertising, data collection, data sharing, and data analysis.

Block S110 of first method S100 recites loading an image to a socialnetworking system. The image can be a digital or electronic image thatis static, such as a color, black-and-white, or sepia photograph, ordynamic, such as a video, meme, or other visual image. As describedabove, the image can be an “official” image, such as uploaded by abrand, merchant, store, or entity thereof as part of an advertisingcampaign, or the image can be an “unofficial” image, such as uploaded bya private user and tagged with various metadata by the private userand/or any other private user. In one implementation, Block S110 uploadsthe image from a standalone computing device, such as a desktopcomputer, a tablet, a smartphone, an Internet-capable camera, etc. Inanother implementation, Block S110 uploads the image from a local orremote server. For example, Block S110 can retrieve the image from anyother Internet site by accessing the image through a server thatsupports the other Internet site.

Block S110 can also interface with an Internet-enabled digital camera,mobile device, desktop, or other computing device to automaticallyupload the image to the social networking system. For example Block S110can implement privacy settings and automatic upload settings set by theuser and associated with the user's social networking profile toautomatically upload the image once captured by the user orautomatically by the computing device. For example, the user can programan Internet-enabled digital camera to capture an image every minute fortwenty-four hours, and Block S110 can automatically upload each image tothe social networking system to generate a time-lapse image feed,including the image, within the social networking system.

Once the image is uploaded, Block S110 can post the image to a socialfeed within the social networking system (and/or photo-sharingplatform). For example, a first user can capture a photographic imagethrough a camera integrated into a smartphone and upload thephotographic image to his social feed within the social networkingsystem. Block S110 can thus post the photographic image to the firstuser's social feed. Block S110 can further share the photographic imageacross the social networking system, such as by posting the photographicimage to one or more other social feeds, such as a social feed ofanother user who is a “friend” or otherwise connected to the first userin the social networking system. In this example, Block S150 canfunction to update previous postings of the photographic image and/or topost the photographic image to additional social feeds as new tags areadded to the image. However, Block S110 can function in any other way toload the image to the social networking system (or photo-sharingplatform).

Block S120 of first method S100 recites receiving, from a user, a tagincluding identification of an item visible in a particular region ofthe image. Generally, Block S120 functions to collect one or more tagsfrom one or more users within the social networking system, wherein eachtag is associated with at least one region of the image and specifies atleast one product, brand, designer, store, merchant, model (i.e., personor product), manufacturer, etc. related to content within the respectiveregion of the image. Block S120 can cooperate with Block S110 to loadthe image to the social networking system and receive a tag from a user,brand, etc. substantially simultaneously. For example, a private usercan upload the image and add brand or product tags to the image throughthe same user interface. Additionally or alternatively, Block S120 canreceive the tag substantially after the image is loaded to the socialnetworking system and posted to a social feed. For example, a user orbrand can retroactively add a tag to a previously-uploaded image, suchas minutes, hours, days, or weeks after the image was first uploaded tothe social networking system.

Block S120 can also receive multiple tags from one or more users orbrands. For example, Block S110 can upload an amateur candid photograph,from a first user, to the first user's personal social feed within thesocial networking system, and Block S120 can receive a shoe brand tag,for a pair of shoes shown in the image, from the first user, a sodabrand tag and a product tag for a soda can, shown in the image, from asecond user, a vehicle manufacturer tag for a vehicle, shown in theimage, from a third user, and a clothing item tag, for a clothing itemshown in the image, from a fourth user. In another example, Block S110can upload, from a handbag brand, an official marketing photograph of awoman holding a branded purse. In this example, Block S120 can receive apurse tag, for the purse shown in the image, from a representative ofthe brand at the time the image is uploaded, and Block S120 cansubsequently receive a clothing brand tag, for a clothing item worn bythe woman in the image, from one private user, as well as a shoe brandtag, for a pair of shoes worn by the woman in the image, from anotherprivate user.

Block S120 can further enable the image owner (i.e., the entity thatuploaded the image, e.g., a user or a brand) to control which image tagsare applied to an uploaded image. In one example implementation, BlockS120 enables the image owner to approve, disapprove, or remove tagsadded by other users, brands, etc. For example, Block S120 can enable aclothing brand that uploaded an official image to disapprove or remove atag for a clothing item by a competing clothing brand also visible inthe image and to approve a tag for a handbag by a luggage brand that isnot a direct competitor to the clothing brand. Block S120 can alsoenable the brand or user to correct a tag. For example, if a second useradds a Brand X tag for a shirt shown in the image when in fact the shirtis by Brand Y, Block S120 can enable the first user to correct the tagby replacing the Brand X tag with a Brand Y tag. However, Block S120 canenable a user, brand, etc. to adjust or modify image tags in any otherway.

The tag received in Block S120 can include any one or more of a link orpointer to a brand, product, or merchant website outside of the socialnetworking system or to a brand, product, or merchant social feed withinthe social networking system. Therefore, in this implementation, a user,brand, etc. can directly specify where or how another user is directedthrough the image. Alternatively, tag received in Block S120 can includea direct purchasing link (e.g., a “buy now” button) or a direct link orpointer to a payment platform through which to pay for the product. Thetag received in Block S120 can also include a product or branddescription, name, stock keeping unit (SKU) number, bar code, or otheridentifier of the product or brand. In this implementation, Block S120can analyze the tag (e.g., key word extraction) to extract a brand orproduct identifier from the tag and then attach a link or pointer to arespective region of the image based on the identifier extracted fromthe tag.

In one implementation, Block S120 can receive the tag that specifies theentire image as a “hotspot” or link such that another user can click(e.g., with a mouse or finger on a touchscreen) anywhere on the image tobe directed to a product review page, brand feed, online store, etc.within or outside the social networking system.

In another implementation, when receiving the tag, Block S120 can promptthe user, brand representative, etc. to select a particular region ofthe image on which to apply the tag, as shown in FIG. 12. For example,Block S120 can prompt the user to define the particular region of theimage by selecting a circle of an appropriate size and then dragging thecircle over a region of the image that includes a relevant product,brand, model, etc., wherein a region of the image within the circledefines a hotspot associated with the tag. Similarly, Block S120 canprompt the user to place a finger over the image to define a firstcorner of a rectangular area, to drag his finger across the image toadjust the width and height of the rectangular area, and to release hisfinger to set an opposite corner of the rectangular area, wherein aregion of the image within the rectangular area defines a hotspotassociated with the tag. In yet another example, Block S120 can promptthe user to use a finger, mouse, stylus, or other pointer to trace aborder around a related product, brand, etc. In this implementation,Block S120 can receive multiple tags that define multiple overlapping ornon-overlapping hotspots on the image. The hotspots can also be of thesame, similar, or dissimilar shape or size. For example, for a brandedimage uploaded by a brand, a hotspot specified by a representative ofthe brand can cover a greater area of the image than a hotspot specifiedby another brand or a private user. In this example, method S100 canimplement tagging rules, such as entered by the brand, to set hotspotregions or areas.

In yet another implementation, Block S120 can implement objectrecognition, character recognition, template matching, edge detection,and/or any other machine vision and/or machine learning technique toautomatically identify a product or brand represented in the image. Inone example, Block S120 analyzes images features, exchangeable imagefile format (exif) data of the image, location data, social context(e.g., user check-ins), and any other relevant image meta to generatethe tag for the image. In another example, Block S120 receives atext-based descriptor of a product visible in the image, access adatabase of template images of a product based on the descriptor, andimplement template matching to identify the product in the image. Inthis example, Block S120 can further set a hotspot in the image aroundthe identified product.

In the foregoing implementation, Block S120 can implement an objectimage detection algorithm to identify a region of the image associatedwith a product, brand, designer, store, merchant, model, etc. Block S120can then automatically generate the tag for the image or prompt thefirst user to enter or confirm the tag. For example, Block S120 cangenerate a set of potential tags for the image based on the object imagedetection algorithm, and the method can prompt the first user to selecta preferred tag or a proper match for the image from the set ofpotential tags. Block S120 can also implement supervised orsemi-supervised machine learning techniques, such as by augmenting adatabase of images with automatically-generated tags confirmed by usersor images with manually-entered tags in order to improve the objectimage detection algorithm. For example, Block can add certain taggedimage elements of the image to the object image detection algorithm,such as a blouse, skirt, shoes, handbag, sunglasses, etc. worn by asubject in the image. Alternatively, Block can add particulararrangements of various elements in images to the object image detectionalgorithm, such as arrangement of a bouquet of flowers within a vase ora belt over a pair of pants. Block S120 can therefore implementfrequency domain image processing, filtering, wavelet analysis, featureextraction, learning-algorithms such as neural networks, texturerecognition, or any other suitable machine vision or machine learningtechnique to automatically identify products, brands, models, etc.represented in the image and/or to automatically generate an image tagfor an un-tagged or under-tagged image. Block S120 can further implementautomatic tagging techniques described in U.S. patent application Ser.No. 12/890,283, filed 24 Sep. 2010, which is incorporated herein in itsentirety by this reference.

Block S120 can further generate a suggestion for a brand to tag theimage based on how fans or followers are interacting with the image. Forexample Block S120 can notify the brand that the image has been shared,commented on, and/or referenced more than average and thus push asuggestion to the brand to tag the image with additional content tomaintain or augment a “viral” element of the image. However, Block S120can function in any other way to receive a tag identifying an itemvisible in a region of the image.

Block S130 of first method S100 recites associating the tag with theparticular region of the image. Generally, Block S130 functions toassociate a tag received from a user, brand, etc. with all or a portionof the region to define a hotspot within the image. As described above,Block S130 can set multiple hotspots within a single image. Therefore,Block S130 can set one or more areas of the image through which a usercan access additional brand, product, merchant, or product lineinformation, access an online merchant or store through which topurchase a product or other brand products, etc.

Block S140A of first method S100 recites, based on the tag, correlatingthe item with a particular brand. Generally, Block S140A functions toassociate the hotspot defined in the image through Blocks S120 and S130with a particular brand to enable access to brand-related informationthrough the hotspot. For example, by correlating the image with thebrand, Block S140A can enable Block S150A to repost the image, with thehotspot(s), to a social feed of the brand within the social networkingsystem. In another example, by correlating the image with the brand,Block S140A can enable Block S160A to direct a user from the hotspot toan external brand website or online store that sells products from thebrand. Block S140A can also correlate the product in the image with aparticular designer or a particular designer within the brand, therebyenabling Block S160A to direct a user from the hotspot to additionalinformation about the designer or other products designed by thedesigner. Block S140A can therefore analyze tag information entered by auser, brand representative, etc. in Block S120 to identify a brand orrelated information pertinent to one or more regions of the image and toassociate the identified brand or related information with one or moreregions of the image. However, Block S140A can correlate an item (e.g.,product) in the image with a particular brand in any other way.

Similarly, as shown in FIG. 2, Block S140B of one variation of firstmethod S100 recites, based on the tag, correlating the item with aproduct. Generally, Block S140B functions to associate the hotspotdefined in the image through Blocks S120 and S130 with a particularproduct to enable access to product-related information through thehotspot. For example, by correlating the image with the product, BlockS140B can enable Block S150B to repost the image with the hotspotlinking to a product page with other product-related images. In anotherexample, by correlating the image with the product, Block S140B canenable Block S150A to direct a user from the hotspot to an externalonline store that sells the product. Block S140B can therefore analyzetag information entered by a user, brand representative, etc. in BlockS120 to identify a product related to one or more regions of the imageand to associate the identified product with one or more regions of theimage. However, Block S140B can correlate a portion of the image with aproduct in any other way.

As shown in FIG. 3, one variation of first method S100 includes BlockS140C, which recites correlating the product with a particular merchantand posting the image to a social feed of the particular merchant withinthe social networking system. Similar to Block S140A and Block S140B,Block S140C functions to associate the hotspot defined in the imagethrough Blocks S120 and S130 with a particular merchant to enable accessto merchant-related information through the hotspot. For example, bycorrelating the image with the merchant, Block S140C can enable BlockS150B to repost the image, with the hotspot(s), to a social feed of alocal brick-and-mortar merchant that offers the product for sale. Inanother example, by correlating the image with the product, Block S140Ccan enable Block S150B to direct a user from the hotspot to an externalonline storefront of the merchant, whereby the user may order theproduct. Block S140C can therefore analyze tag information entered by auser, brand representative, etc. in Block S120 to identify a merchantthat sells the product identified or tagged in the image and toassociate the merchant with the image. Block S140C can also select themerchant from a set of suitable online or brick-and-mortar stores basedon a contract with the social networking system, a user's transactionhistory (e.g., has the user previously shopped with this merchant?), auser demographic (e.g., an adult-targeted store for a user who is anadult), a user location (e.g., GPS location data of a smartphoneassociated with the user and that is physically nearby a particularbrick-and-mortar merchant), etc. For example, Block S140C can analyzethe product tag collected in Block S120, access a database of preferredmerchants, filter the database according to user purchasing habits anddemographic, select the merchant based on a ranking of filteredmerchants in the database that sell the product, and source a link to anexternal storefront (i.e., outside the social networking system) of themerchant based on a merchant profile stored in the database. However,Block S140C can correlate a portion of the image with a merchant in anyother way.

Block S150A of first method S100 recites posting the image to a socialfeed of the particular brand within the social networking system.Generally, Block S150A functions to distribute the image, within thesocial networking system, based on the brand associated with the imagein Block S140A. Block S150A therefore can post the image to a socialfeed of the brand, such as a photo feed, message board, timeline, or‘wall’ managed by the brand within the social networking system.Therefore, Block S150A can aggregate brand-related images uploaded tothe social networking system by one or more users, brands, merchants,stores, etc., into a single brand feed that is accessible to varioususers within the social networking system. For example, for a brand thatis a clothing brand, a user can a access the brand feed to see officialand unofficial images of various clothing items produced by the brand,compare advertising images with real-life people wearing the brand'sclothing, view brand or clothing trends (e.g., how people are wearingcertain items), etc.

In one implementation, Block S150A posts the image once a brand tag isapplied to the image such that the image is in linear sequence withother images posted to the social feed and tagged with brand-relatedinformation. Block S150A can thus post each additional brand-taggedimage to the top of the brand's photo feed, message board, timeline,wall, etc. Block S150A can similarly post the image once the brandapproves the image and the brand tag.

Block S150A can additionally or alternatively selectively post the imageto the brand's social feed. For example, Block S150A can filter out(i.e., withhold from posting to the brand's social feed) images of aquality below a threshold quality, such as blurry images or images withpoor lighting. Similarly, Block S150A can order images in a queue ofimages to post to the brand's social feed based on image quality. Forexample, Block S150A can maintain a queue of images tagged with thebrand and sourced from a private user within the social networkingsystem, and Block S150A can post an image from the queue every hourbased on a brand or merchant setting. Block S150A can further reorderimages in the queue, such as according to image quality or any otherimage feature, as additional images are uploaded to the socialnetworking system and tagged with the brand over time. Similarly, BlockS150A can rank images, such as in the queue or directly in the brand'sfeed, based on an origin of each image. For example, Block S150A canrank a first image higher in a queue of images to post to the brand'ssocial feed than a second image, wherein the first image was uploaded bya user with a history of uploading suitable-quality images with properbrand or product tags, and wherein the second user does not have ahistory of uploading images with brand or product tags or has a historyof uploading poor-quality or inappropriate images. In this example,Block S150A can also rank a third image uploaded by the brand higher inthe queue than the first image. Block S150A can implement similarfunctionality to change an order of images previously posted to thebrand's social feed, such as by rearranging images in the brand's socialfeed in real time when a new image is uploaded by a private user andtagged with the brand and/or when a new image is uploaded and tagged bythe brand directly. Therefore, as in these examples, Block S150A cancontrol a quality of images in a queue of images in line to be posted tothe brand's feed. Block S150A can similarly control a quality of imagesalready posted to the brand's social feed.

Furthermore, Block S150A can implement machine vision and/or machinelearning techniques to identify and filter out images with inappropriateor explicit content. Block S150A can also filter out images tagged withboth the brand and any other brand or product that competes with thebrand such that other (competing) brands or products are not advertisedwithin the brand's social feed. However, Block S150A can extract anyother feature, quality, or characteristic from an image tagged with thebrand and implement any one or more of these features, qualities, orcharacteristics to control which or how images are posted to the brand'ssocial feed.

Block S150A can additionally or alternatively enable a brand orrepresentative to implement some or all of the foregoing functionalitiesmanually, such as through the brand interface. For example, Block S150Acan display images tagged with the brand in a private brand interfacethrough which a human representative of the brand can manually reviewimages, remove unwanted images, correct, edit, or adjust tags orhotspots, rank images, select images to be posted, post images, etc.Alternatively, the human representative can access the brand interfaceto adjust settings applied by Block S150A to automatically filter outunwanted images, arrange images in a queue, post images to the brand'ssocial feed, rearrange images in the brand's social feed, etc. Forexample, the human representative can open the brand interface to set athreshold image quality, threshold image size, preferred image aspectratio, threshold (maximum or minimum) number of allowable image tags,and/or preferred image origin (e.g., user, location). However, BlockS150A can receive any other setting from the brand to control imageselection, queuing, posting, etc. and can enable manual control of imageselection, queuing, posting, etc. in any other suitable way.

Block S150A can also post the image to additional social feeds withinthe social networking system. For example, Block S150A can post theimage to a social feed of a second user, within the social networkingsystem, who subscribes to the brand. In this example, Block S150A canaccess a subscription, like, comment, etc. relating the second user tothe brand and post the image to the second user's social feedaccordingly. In another example, Block S150A can post the image to asocial feed of a subsidiary, partner, and/or parent company of thebrand, thereby propagating the image throughout the social networkingsystem and increasing image exposure for potential customers.Furthermore, for the image tagged with multiple brands, Block S150A canpost (or queue) the image to a social feed of each tagged brand or asubset of the tagged brands, such as based on settings specified by eachbrand as described above. However, Block S150A can function in any otherway to post the image to a social feed of the particular brand withinthe social networking system.

Similarly, as shown in FIG. 2, Block S150B of one variation of firstmethod S100 recites posting the image to a social feed within the socialnetworking system, the social feed including photos related to theproduct. Generally, similar to Block S150A, Block S150B functions todistribute the image within the social networking system based on theproduct associated with the image in Block S140B. For example, BlockS150B can post the image to a social feed allocated for the particularproduct with which the image is tagged, such as a photo feed, messageboard, timeline, or ‘wall’ managed by a brand or merchant to advertisethe particular product. Therefore, Block S150B can aggregateproduct-related images uploaded to the social networking system by oneor more users, brand, merchants, stores, etc., into a single productfeed that is accessible to various users within the social networkingsystem. For example, for the product that is a blouse, a user can accessthe product feed to see images of how the blouse fits on various peopleor models, to get ideas for pants, shoes, and other accessories thatcomplement the blouse, or to see who (e.g., a Hollywood star, a friend)has worn the same blouse.

In one implementation, Block S150B posts the image once a product tag isapplied to the image such that the image is in linear sequence withother images also posted to the social feed and tagged withproduct-related information. Block S150A can thus post each additionalproduct-tagged image to the top of the product photo feed, messageboard, timeline, wall, etc.

Additionally or alternatively, like Block S150A, Block S150B canselectively post the image to the social feed of the product. Forexample, Block S150B can filter out images of a quality below athreshold quality, images that include inappropriate or explicitcontent, images of an improper size or aspect ratio, images tagged withother (competing) products and/or brands, images from certain users orlocations, or images that fail to meet any other criteria. Block S150Bcan also implement machine vision and/or machine learning techniques toidentify and filter out unsuitable or less desirable images.Furthermore, as described above, a (human) representative of a brand ormerchant can set filter settings implemented by Block S150B to selectimages to post to the product feed. Block S150B (and Block S150A) cantherefore implement various and/or unique filters for each brand orproduct feed within the social networking system. However, Block S150Bcan extract any other feature, quality, or characteristic from an imagetagged with the product and implement any one or more of these features,qualities, or characteristics to control which or how images are postedto the social feed of the product.

Similar to Block S150A, Block S150B can also order or rank images in aqueue of images to post to the social feed of the product. For example,Block S150B can post an image, tagged with the product and sourced froma private user within the social networking system, every 12 hours basedon a brand or merchant setting and thus can maintain a queue of imagesto post. Block S150B can reorder images in the queue according toextracted image characteristics, such as image quality or image origin,as additional images are uploaded to the social networking system andtagged with the product over time. For example, Block S150B can rank afirst image higher in a queue of images to post to the social feed ofthe product than a second image, wherein the first image is in focus andwas taken with suitable lighting and wherein the second image is out offocus and dark. In this example, Block S150B can also rank a third imageuploaded by a related brand and tagged with the product higher in thequeue than the first image.

Like Block S150A, Block S150B can also modify an order of imagespreviously posted to the social feed of the product when an additionalimage is added to the social feed of the product. For example, BlockS150B can rearrange images in the social feed in real time when a newimage is uploaded by a private user and tagged with the product and/orwhen a new image is uploaded and tagged by a related brand. Therefore,Block S150B can control a quality of images in a queue of images in lineto be posted and/or can control how images already posted to the socialfeed of the product are viewed by users based on image quality.

Similar to Block S150A, Block S150B can additionally or alternativelyenable a brand or brand representative to implement some or all of theforegoing functionalities manually, such as through the brand or productinterface. For example, Block S150B can display images, tagged with theproduct, in a private interface through which a human representative ofthe brand can manually review images, remove unwanted images, correct,edit, adjust tags or tag regions, rank images, select images to beposted, post images, etc. Alternatively, a human representative can seta threshold image quality, threshold image size, preferred image aspectratio, threshold (maximum or minimum) number of allowable image tags,preferred image origin (e.g., user, location), etc. from within thebrand interface, and Block S150B can implement any of the enteredsettings to filter and post product-tagged images.

Block S150B can also post the image to additional social feeds withinthe social networking system. For example, Block S150B can post theimage to a social feed of a second user within the social networkingsystem who subscribes to the product, a brand that designs or producesthe product, a merchant that sells the product, etc. In this example,Block S150B can access a subscription, “like”, comment, etc. relatingthe second user to the brand and subsequently post the image to thesecond user's social feed accordingly.

Block S150A and Block S150B can also post the image to feeds, streams orother communication channels outside of the social networking system,such as through an iframe or a social plug in. Block S150A and BlockS150B can further post the image to a third party site (i.e., a domainoutside of the social networking system), such as accordingly an imagepurchase or image lease agreement. However, Block S150A and Block S150Bcan function in any other way to post the image to a social feed withinthe social networking system.

Block S160A of first method S100 recites, in response to interactionwith the image in the social feed by a second user, directing the seconduser to brand content specified by the particular brand. Generally,Block S160A functions to implement a hotspot in the image by opening orlinking to additional brand- or product-related content. For example,when a user clicks, touches, or otherwise selects the brand-tagged imageor a hotspot within the image, Block S160A can direct the user toanother page, menu, or interface within the social networking system,such as to a curated brand page. Alternatively, when a user clicks,touches, or otherwise selects the brand-tagged image or a hotspot withinthe image, Block S160A can direct the user outside of the socialnetworking system, such as to a brand website, a blog associated withthe brand, a brand-related native application, or an online standalonestore for the brand.

In one implementation, Block S160A directs a user to additional brandcontent in response to user interaction with the image outside of thebrand's social feed, as shown in FIG. 11. For example, Block S160A canlink the user to the brand's social feed when the user selects the imagewhen viewed through a non-commercial feed, such as when the user isreviewing his personal feed or viewing a “friend's” public feed. Inanother implementation, Block S160A directs the user to additional brandcontent in response to user interaction with the image when viewedwithin the brand's social feed. For example, Block S160A can link theuser to a social feed of a particular product of the brand, to a brandstore, or to a brand or product description page when the user selectsthe image when viewed through the brand's feed.

In an illustrative example of the foregoing implementations, Block S110can upload an image, from a first user, of an individual wearing a superhero costume on Halloween. The first user can tag the image with thesuper hero, and Block S140A can associate the image with a particularbrand (e.g., a comic brand) that owns and produces content related tothe super hero. Block S130 can apply a super hero hotspot to the image,such as based on a region selection by the first user or by implementingmachine vision to identify a super hero costume or insignia in theimage. Block S150A can subsequently add the image to a queue of imagesto post to a super hero brand feed within the social network, the feedincluding posts about upcoming television shows, comics, trailers, andfilms featuring the super hero, actors who have played the super hero,and dates and trivia related to the super hero. In this example, when asecond user selects the hotspot in the image from the first user's feed,Block S160A can direct the second user to the super hero brand feedwithin the social network. Alternatively, when the second user selectsthe hotspot in the image from the super hero brand feed, Block S160A candirect the second user to a brand page of a publishing company that ownsand produces content pertaining to the super hero.

When a user selects the branded image, Block S160A can also open anintermediate page for the user. For example, when the user selects theimage, Block S160A can open a menu with the image enlarged such that theuser can view further details of the image. In this example, byexpanding the image, Block S160A can present the image to the user at ahigher resolution and thus enable the user to more easily select frommultiple hotspots within the image, such as a hotspot for each of pairof shoes, a pair of pants, a blouse, a hat, and a necklace tagged in theimage. Block S160A can then direct the user to various product pages,merchant or store pages, or portions of a brand page or social feedbased on the user's intermediate selection within the enlarged image.Block S160A can also display callouts for each hotspot in the image,such as a product or brand description in response to a mouse-over eventover a tagged product or a sidebar description with an arrow pointing toa related item within the image. In this implementation, Block S160A canselectively callout a subset of tagged items in the image, such as basedon user purchasing history, user location and stock at a nearbybrick-and-mortar retail location, a perceived user interest, a userdemographic, etc., any of which can be stored on the social networkingsystem.

Upon selection of the image by a user, Block S160A can link or directthe user to an intermediate page, splash page, menu, or other interfaceor page as specified by the brand. Alternatively, Block S160A canimplement an interface or page specified by another user who uploadedthe image or by another user who tagged the image. Block S160A can alsospecify the interface or page, such as by selecting a default brand pagepreviously set by the brand when Block S140A correlates an item in theimage with the brand. Selection of the image can also automatically flagthe image for a designated photo album or collection, wherein BlockS160A directs the second user to the photo album or collection. However,Block S160A can function in any other way to direct the second user tobrand content specified by the particular brand in response tointeraction with the image.

Block S160B of first method S100 recites, in response to interactionwith the image in the social feed by the second user, directing thesecond user to an electronic storefront through which to purchase theproduct. Generally, Block S160B functions to implement a hotspot in theimage by opening or linking to a venue through which the user maypurchase the product, a similar product, and/or other products by thesame brand as the product, as shown in FIG. 12. For example, when a userclicks, touches, or otherwise selects the product-tagged image or ahotspot within the image, Block S160B can direct the user to an onlinestorefront of the brand or an online merchant that carries products frommultiple brands. Alternatively, Block S160B can direct the user to aninformation page for a local brick-and-mortar retailer that carries theproduct or a stock-keeping page of a local retailer that maintains anupdated inventory of in-stock items including the product. Like BlockS160A, Block S160B can direct the user to a product, merchant, or brandpage, interface, menu native application, etc. within or external thesocial networking system.

In one implementation, Block S160B directs a user to additional productcontent in response to user interaction with the image outside of theproduct feed. For example, Block S160B can link the user to a curatedset of photos of products offered by a merchant, including the productassociated with the image, when the user selects the image when viewedthrough a non-commercial feed, such as a personal feed or a friend'ssemi-private feed. Block S160B can similarly direct the user to theproduct social feed including images and/or information related to theproduct associated with the hotspot. In another implementation, BlockS160B directs the user to additional product content in response to userinteraction with the image when viewed within the product feed. Forexample, Block S160B can link the user to a product splash page, amerchant shopping interface, or a product-specific page within an onlinemerchant website or native application when the user selects the imagewhen viewed through the product feed.

In an illustrative example, Block S110 can upload an image, from a firstuser, of an individual wearing a super hero costume on Halloween. Thefirst user can tag the image with the super hero, and Block S140B canassociate the image with particular super hero-related products,including a super hero costume, a super hero comic, and a super herofilm. Block S130 can apply a super hero costume hotspot to a firstportion of the image, a super hero paper comic hotspot to a secondportion of the image, and a super hero film hotspot to a third portionof the image. Block S150B can subsequently add the image to a super herofeed within the social network, the feed including posts about upcomingtelevision shows, comics, trailers, and films featuring the super hero,actors who have played the super hero, and dates and trivia related tothe super hero. In this example, Block S160B can direct a second user toan online costume store when the second user selects the super herocostume hotspot, to a website of a local comic book store when thesecond user selects the super hero comic hotspot, and to super hero filmtrailer in a native video sharing application when the second userselects the super hero film hotspot.

Similar to Block S160A, when a user selects the product image, BlockS160B can open an intermediate product page for the user. For example,when the user selects the image, Block S160B can open a menu displayingthe image enlarged such that the user can view further details of theimage, select another product or hotspot with greater ease orresolution, and/or access more information about the product or arelated brand or manufacturer. Block S160B can then direct the user tovarious product stores, merchants, or brand pages based on a userselection within the intermediate page. Block S160B can also displaycallouts for various hotspots in the image, such as a product or branddescription in response to a mouse-over event over a tagged product or asidebar description with an arrow pointing to a related item within theimage. Like Block S160A, Block S160B can also selectively callout asubset of tagged items in the image, such as based on user purchasinghistory, user location, a perceived user interest, a user demographic,etc.

In another implementation, Block S160B (and/or Block S160A) directs auser to a local brick-and-mortar retail store through which to purchasethe product, based on the user's location, when the user selects theimage or a respective hotspot on the image. For example, Block S160B canaccess GPS data of a mobile computing device associated with the user'ssocial networking profile to estimate a current location of the user. Inanother example, Block S160B can triangulate the location of the mobilecomputing device by analyzing signal strength between the mobilecomputing device and (three) local cellular towers. In yet anotherexample, Block S160B can analyze a recent user check-in to predict acurrent user location. However, Block S160B can determine or estimatethe location of the user in any other suitable way. Once the location ofthe user is determined, Block S160B can select a local retailer that issuitably close to the user, such as a retailer that is within five milesof the user's location and has the tagged product in stock. Block S160Bcan additionally or alternatively select the local retailer from adatabase of participating retailers and/or from a database of ranked orpreferred retailers. Once a brick-and-mortar retailer is selected, BlockS160B can direct the user to retailer information, such as the name andlocation of the retailer and/or a current stock of the retailer. Forexample, Block S160B can display the retailer's location and productavailability through a native social networking application or ashopping application executing on the mobile computing device. BlockS160B can also direct the user to a native maps application executing onthe mobile computing device to guide the user to the brick-and-mortarretailer.

However, Block S160B can function in any other way or implement anytechnique similar to Block S160A to direct a second user to anelectronic or brick-and-mortar storefront through which to purchase theproduct in response to interaction with the image in the social feed bythe second user. Furthermore, Block S160B can function independently ofor in cooperation with Block S160A to direct the user to one or moreproduct- and/or brand-related pages, interfaces, menus, etc. within oroutside the social networking system.

As shown in FIG. 3, one variation of first method S100 includes BlockS170, which recites rewarding the first user. In one implementation,Block S170 rewards the first user in response to uploading the imagethat is eventually tagged with a brand or product, either by the firstuser or by another user in the social networking system. In anotherimplementation, Block S170 rewards the first user in response toreceiving the tag (e.g., in Block S120). In these implementations, BlockS170 functions to incentivize private users in the social networkingsystem to upload and/or tag images, thereby populating the socialnetworking system with crowdsourced visual advertisements for brandsand/or products. In yet another implementation, Block S170 rewards theuser in response to selection of his tagged image or a tag therein byanother user (e.g., the input from the second user). In thisimplementation, Block S170 functions to reward users for supplyingcontent (tags and images) that result in click-throughs by other users,which can thus incentivize quality and/or interesting images, as well ascorrect and/or interesting tags, thereby potentially limiting a need forthe brand, the store, the merchant, the social networking system, etc.to regulate or inspect tagged images prior to posting the images to oneor more social feeds. In this implementation, Block S170 can reward auser proportionally (e.g., linearly, exponentially) with traffic acrossan image or tag provided by the user, or Block S170 can reward the useronce a threshold number of views or click-throughs is reached. However,Block S170 can reward a user based on any other action or according toany other schema.

Block S170 can reward a user with any one or more perks. For example,Block S170 can reward the user with an extended privilege within thesocial networking system or extended access to a brand or product page.In this example, the user can be rewarded with early access to or earlyalerts for new products offered by the brand or new products similar tothe product tagged in the image uploaded by the user. In anotherexample, Block S170 can reward the user with an offer from the brand ora merchant that sells the brand's products, such as a discount on afuture purchase or a free sample. In other examples, Block S170 canreward the user with a monetary reward or promoted distribution of theimage within the social networking system. Block S170 can also rewardthe user with one or more loyalty points redeemable through themerchant, wherein the user can redeem the loyalty points(s) for a freeitem from a merchant or a discounted purchase from the merchant. BlockS170 can also reward the user with “clout” or other influence within thesocial networking system, such as by adjusting how the user is ranked insearches by other users within the social network and/or by adjustinghow a post by the user is ranked in an aggregated news feed of posts bymultiple users within the social network. However, Block S170 can rewardthe user in any other way and according to any other schema.

As shown in FIG. 3, one variation of first method S100 includes BlockS180, which recites displaying a visual cue contiguous with the image inthe social feed. The image, with hotspots, can be posted to a socialfeed including only images and/or to a social feed excluding conspicuousadvertising, such as sidebar advertisements or interspersedadvertisements that disrupt the social feed. Because the image can be ofa substantially similar appearance with and/or form factor of otherimages, in the social feed, that do not include hotspots or links to aproduct, brand, or merchant page, Block S180 can therefore apply avisual indicator of hotspot availability on the image. Generally, BlockS180 functions to apply the visual cue to the image such that a userviewing the image in the social feed may comprehend that the imageincludes a hotspot but without substantial disruption to the form orvisual appearance of the social feed.

In one implementation, Block S180 highlights the image, in the socialfeed, with a visual cue that is a border around the image. For example,Block S180 can apply a five-pixel wide green border around the image. Inthis implementation, Block S180 can also select the border color and/orborder thickness based on the type and/or number of hotspots in theimage. For example, Block S180 can apply a two-pixel wide green borderto an image with one product tag, a two-pixel wide orange border to animage with one brand tag, a four-pixel wide green border to an imagewith two product tags, and a two-pixel wide orange border inside atwo-pixel wide green border to an image with one brand tag and oneproduct tag. In this implementation, Block S180 can also animate theborder to draw attention to the image, such as by flashing, pulsing, orfading the border. Block S180 can also change the color or size of theborder as more users view or click on the image, such as bytransitioning the border from green to yellow to orange to red as thenumber of image views increases. Block S180 can further remove theborder on the image for a user who has already clicked on or previouslyviewed the image.

In another implementation, Block S180 applies the visual cue directly onthe image. For example, Block S180 can implement a machine visiontechnique (e.g., object recognition) to identify the product in theimage and apply a border around the product within the image, such as awhite border in the image that is dark and a green border in an imagethat is bright but with muted colors. Block S180 can additionallyenlarge or animate the product with the image in order to draw attentionto a hotspot on the image or over the product. However, Block S180 canfunction in any other way to visually indicate the presence of a hotspotin the image.

As shown in FIG. 3, one variation of first method S100 includes BlockS190, which recites determining an interest of a second user based onbrowsing history of the second user within the social networking systemand posting the image to a social feed of the second user according tothe determined interest that is related to the product. Generally, BlockS190 can analyze user information stored in the social networkingsystem, such as demographic, education, birth date, browsing history,friends or other connections, occupation, likes, etc. to estimate therelevance of the tagged image to a user. If Block S190 predicts that auser may have an interest in a product or brand tagged in the photo,Block S190 can post the photo to the user's personal feed within thesocial networking system. Alternatively, Block S190 can rearrange orrank posts in any other social feed within the social networking systemto increase visibility of the image to the user when the user views theother social feed. For example, a clothing brand can produce severaldifferent classifications of items, including shirts, pants, jackets,watches, purses, shoes, socks, and scarves, but Block S190 can predictthat the user is not interested in anything but shirts, pants, andjackets from the brand based on past user transaction history. In thisexample, when the user views the brand's social feed, Block S190 canrearrange images in the feed specially for the user according to theuser's predicted interests, including placing images tagged with shirts,pants, and jackets at the top of the brand's social feed and placingimages tagged with watches and purses at the bottom of the social feed.However, Block S190 can function in any other way to determine aninterest of a user and to control or adjust access to a brand- orproduct-tagged image accordingly.

2. Second Method

As shown in FIG. 4, a second method S200 for selectively advertisingitems in an image includes: loading an image to a social feed within asocial networking system in Block S210; receiving a first tag includingidentification of a first item visible in a first region of the image inBlock S220A; associating the first tag with the first region of theimage in Block S230A; based on the first tag, correlating the first itemwith a first product in Block S240A; based on the first product,sourcing a first link to a first electronic storefront that facilitatespurchase of the first product in Block S250A; receiving a second tagincluding identification of a second item visible in a second region ofthe image in Block S220B; associating the second tag with the secondregion of the image in Block S230B; based on the second tag, correlatingthe second item with a second product in Block S240B; based on thesecond product, sourcing a link to a second electronic storefront thatfacilitates purchase of the second product in Block S250B; andselectively displaying a first visual cue of the first link and a secondvisual cue of the second link to a first user and to a second user,respectively, according to a demographic of the first user and ademographic of the second user, the first visual cue contiguous with theimage in the social feed viewed by the first user and the second visualcue contiguous with the image in the social feed viewed by the seconduser in Block S280A.

As shown in FIG. 5, one variation of second method S200 includes:posting an image to a social feed within a social networking system inBlock S212; receiving a first tag including identification of a firstitem visible in a first region of the image in Block S220A; associatingthe first tag with the first region of the image in Block S230A; basedon the first tag, correlating the first item with a first product inBlock S240A; based on the first product, sourcing a first link to afirst electronic storefront through which to purchase the first productin Block S250A; receiving a second tag including identification of asecond item visible in a second region of the image in Block S220B;associating the second tag with the second region of the image in BlockS230B; based on the second tag, correlating the second item with asecond product in Block S240B; based on the second product, sourcing alink to a second electronic storefront through which to purchase thesecond product in Block S250B; at a first time, displaying a firstvisual cue of the first link contiguous with the image in the socialfeed viewed by a user in Block S280B; and at a second time later thanthe first time, displaying a second visual cue of the second linkcontiguous with the image in the social feed viewed by the user in BlockS280C.

Generally, as shown in FIG. 13, second method S200 functions toimplement visual cues on, around, or proximal an image (of first methodS100) to advertise various products and/or brands to different users,such as based on user demographic or a perceived user interest.Similarly, as shown in FIG. 14, the variation of second method S200functions to implement visual cues on, around, or proximal an image offirst method S100 to advertise various products and/or brands to oneuser at different times. Second method S200 and associated variationscan therefore implement images tagged with product- or brand-relatedmetadata and displayed through a social feed within a social networkingsystem to direct users to various brand-related websites, pages, orstorefronts within or external the social networking system. Therefore,second method S200 enables targeted advertising to users throughofficial and/or unofficial images displayed to users through one or moresocial feeds within a social networking system and further enables usersto access additional brand- and/or product-related information bysetting links (e.g., hotspots) within the images.

Like first method S100 described above, second method S200 can beimplemented by a computer system, such as through an onlinephoto-sharing platform or a social networking system that executes onthe computer system and uploads photos to social feeds, displays thephotos to various users, such as based on user subscriptions orconnections to other users or entities within the platform or network,and enables advertising to users through tagged photos. The computersystem can be a cloud-based computer (e.g., Amazon EC2), a mainframecomputer system, a grid-computer system, or any other suitable computersystem. As described above, the computer system can support photosharing within a social feed, wherein at least one photo in the socialfeed functions as a visual advertisement to link a user to additionalbrand, product, merchant, or store content. For example, the computersystem can upload a photo and associated tags over a distributednetwork, such as over the Internet, and one or more processorsthroughout the distributed network can implement one or more Blocks ofsecond method S200 to post the photo to the social feed and direct auser from the photo to additional related content. A user, merchant,brand, etc. can access images, product- or brand-related information,advertising settings, etc. through a web browser or native applicationexecuting on a computing device, such as a laptop computer, a desktopcomputer, a tablet, a smartphone, a personal data assistant (PDA), apersonal music player, etc. However, second method S200 can beimplemented on or by any other computer system, service, network, etc.and can include any other interface to support advertising, datacollection, data sharing, and data analysis.

Block S210 of second method S200 recites loading an image to a socialfeed within a social networking system. Generally, Block S210 functionslike Block S110 of first method S100 to receive an image from another(e.g., third) user and to upload the image to the social networkingsystem, as shown in FIG. 13. As described above, the image can be adigital or electronic image that is static, such as a color,black-and-white, or sepia photograph, or dynamic, such as a video, meme,or other visual image. However, Block S210 can function in any other wayto load the image to the social feed within the social networkingsystem.

As shown in FIG. 5, Block S212 of one variation of second method S200recites posting the image to a social feed within the social networkingsystem. Generally, Block S212 functions like Block S110 of first methodS100 to post the image to the social feed. For example, as describedabove, a third user can capture a photographic image through a cameraintegrated into a smartphone, and Block S212 can then upload thephotographic image to the third user's personal social feed within thesocial networking system. Block S212 can further share (i.e., repost)the photographic image across various other feeds within the socialnetworking system, such as by reposting the photographic image to asocial feed of another user who is a “friend” or other connection to thethird user, such as a social feed of the first user and a social feed ofthe second user. However, Block S212 can post the image to a social feedwithin the social networking system.

Block S220A of second method S200 recites receiving a first tagincluding identification of a first item visible in a first region ofthe image. Similarly, Block S220B of second method S200 recitesreceiving a second tag including identification of a second item visiblein a second region of the image, as shown in FIG. 14. Generally, BlocksS220A and S220B implement methods and techniques of Block S120 of firstmethod S100 described above to collect tags from users within the socialnetworking system, wherein each tag is associated with at least oneregion of the image and specifies at least one product, brand, designer,store, merchant, model (i.e., person or product), manufacturer, etc.related to an item represented in the respective region of the image.Blocks S220A and S220B therefore cooperate to collect tag informationthat second method S200 can implement to define various advertisementswithin the image. For example, Block S210 can upload the image from athird user and Block S220A can substantially simultaneously receive abrand or product tag from the third user. Block S220B can subsequentlyreceive the second tag from a brand representative who retroactivelyadds the second tag to the image, such as minutes, hours, days, or weeksafter Block S210 first uploaded the image.

Each tag received through Block S220A, Block S220B, etc. can include alink or pointer to a brand, product, or merchant website outside of thesocial networking system or a link or pointer to a brand, product, ormerchant social feed or profile within the social networking system.Alternatively, Block S220A, Block S220B, etc. can receive tags thatinclude a product or brand description, make, model, product line nameor code, stock keeping unit (SKU) number, bar code, merchant ID, orother identifier of the product or brand. For example, Block S220A canimplement key word extraction to analyze a tag and thus identify a brandor product in the image. In this example, Block S230A can then attach alink or pointer to a respective region of the image based on theidentifier extracted from the tag in Block S220A.

In one example, Block S210 uploads an amateur candid photograph from athird user to the third user's personal social feed within the socialnetworking system. Block S220A then receives a shoe brand tag, for apair of shoes shown in the image, from the third user, and Block S220Breceives a soda brand and product tags for a soda can, shown in theimage, from a second user. Similar Blocks of second method S200 canfurther receive a vehicle manufacturer tag for a vehicle shown in theimage from a third user, a clothing item tag for a clothing item shownin the image from a fourth user, etc.

Like Block S120 of first method S100, Block S220A and/or S220B canenable an image owner (i.e., the entity that uploaded the image, e.g., auser or a brand) to control which image tags are applied to an uploadedimage, such as by approving, disapproving, or removing tags added to theimage by other users, brands, etc.

As in Block S120 of first method S100 described above, Blocks S220A andS220 b can prompt a user, brand representative, etc. to select aparticular region of the image on which to apply a tag. Blocks S230A andS230B can then implement the tags and selected regions as hotspots thatlink to additional brand- or product-related content. The selectedregions of the image corresponding to the tags can be discrete (i.e.,non-overlapping) and/or overlapping and can be of the same, similar, ordissimilar size and/or shape. Alternatively, as described above, BlocksS220A and S220B can implement object recognition, character recognition,template matching, edge detection, and/or any other machine visionand/or machine learning technique to automatically identify a product orbrand represented in the image. However, Block S220A and S220B canfunction in any other way to receive the first tag includingidentification of the first item visible in the first region of theimage and to receive the second tag including identification of thesecond item visible in the second region of the image.

Block S230A of second method S200 recites associating the first tag withthe first region of the image. Similarly, Block S230B of second methodS200 recites associating the second tag with the second region of theimage. Generally, Blocks S230A and S230B implement methods andtechniques similar to those implemented by Block S130 of first methodS100 described above to apply tags, received from a user, brandrepresentative, etc., to the image. Blocks S230A and S230B can thereforedefine multiple hotspots in the image through which a user (e.g., thefirst user, the second user) can access additional brand, product,merchant, or other related information through each hotspot. Asdescribed above, Blocks S230A and S230B can define the hotspots asdiscrete (i.e., non-overlapping), partially overlapping, or fullyoverlapping regions of the image. Blocks S230A and S230B can furtherinterface with Block S240A and S240B, respectively, to define hotspotsthat link or direct a user to an external brand or product webpage, abrand or product page within the social networking system, an externalnative application or “app,” a pop-up window, a sliding menu, anintermediate page or menu, or other interface through which the user canaccess additional product or brand information and/or complete aproduct- or brand-related purchase. However, Blocks S230A and BlockS230B can function in any other way to associate the user- orbrand-supplied tags with the various regions of the image.

Block S240A of second method S200 recites, based on the first tag,correlating the first item with a first product. Similarly, Block S240Bof second method S200 recites, based on the second tag, correlating thesecond item with a second product. Generally, Blocks S240A and S240Bimplement methods and techniques similar to those implemented by BlockS140B of first method S100 described above to associate a hotspot,defined by Blocks S230A and S230B, with particular products to enableaccess to product-related information through the hotspot. For example,by correlating a first item in the image with a first product, BlockS240A can enable Block S260 to direct a first user from a first hotspotto an external online store that sells the first product. Furthermore,in this example, by correlating a second item in the image with a secondproduct, Block S240B can enable Block S260 to direct a second user froma second hotspot to an internal brand page for a brand that markets thesecond product. In another example, by identifying the first product,Block S240A can enable Block S250A to source a first link to a firstelectronic storefront through which a user can purchase the firstproduct, and, by identifying the second product, Block S240B cansimilarly enable Block S250B to source a second link to a secondelectronic storefront through which a user can purchase the secondproduct. Block S140B can therefore analyze tag information entered by auser, brand representative, etc. in Block S120 to identify a productrelated to one or more regions of the image and to associate theidentified product with one or more regions of the image. However, BlockS240B can correlate a portion of the image with a product in any otherway.

Blocks S240A and/or S240B can therefore analyze tag information enteredby one or more users, brand representatives, etc. in Blocks S220A andS220B to identify products related to one or more regions of the imageand to associate identified products with various regions of the image.However, Blocks S240A and S240B can correlate regions of the image withvarious items in the image in any other way.

Block S250A of second method S200 recites, based on the first product,sourcing a first link to a first electronic storefront that facilitatespurchase of the first product. Similarly, Block S250B of second methodS200 recites, based on the second product, sourcing a link to a secondelectronic storefront that facilitates purchase of the second product.Generally, Blocks S250A and S250B function to define target paths forthe first and second hotspots in the image based on the first and secondproducts identified in Block S240A and S240B, respectively. As describedabove, the target path specified by the link can be an electronicstorefront within the social networking system, an online storefront ona website outside the social networking system, a standalone nativeshopping application, or any other electronic venue accessible through acomputing device to purchase a product. Alternatively, as describedabove, the target path specified by the link can be an information page,pop up message, notification, etc. internal or external the socialnetworking system, that contains information related to abrick-and-mortar store that carries a particular product identified inthe image.

In one implementation, Block S250A predefines the first link for thefirst hotspot by comparing the first product, correlated with the firstitem visible in the image in Block S240A, with a database of electronicstorefronts to identify a subset of electronic storefronts that carrythe first product. For the subset of electronic storefronts thatincludes multiple suitable storefronts, Block S250A can select anelectronic storefront that is ranked highest in the set. In one example,merchants purchase rankings through contracts with the social networkingsystem. In another example, the social networking system ranks merchantsbased on a revenue share contract between the merchant and the socialnetworking system or based on a promotional period paid for by aparticular merchant. In yet another example, the social networkingsystem can rank merchants based on user likes or feedback from userswithin the social networking system. Similarly, the social networkingsystem can rank merchants according to a number of merchant transactionsor revenue amounts from merchant transactions initiated through secondmethod S200 implemented by the social networking system. In anotherexample, Block S250A analyzes data of social networking system users toidentify characteristics of users with predicted interest in the firstproduct. In this example, Block S250A can analyze user transactionhistory, likes, shares, posts, reposts, demographic information,browsing history, etc. to thus rank stores substantially relevant tousers sharing a potential interest in or need for the first product. Inthe foregoing examples, Block S250A can implement storefront rankings toselect the first electronic storefront from the subset of electronicstorefronts and can then apply a link to the selected first storefrontto the first hotspot. Block S250B can implement similar techniques topreselect a link to a second storefront for the second hotspot.

In another implementation, Block S250A selects the first link for thefirst hotspot substantially in real time. In this implementation, whenthe first user opens, views, or otherwise accesses the image, BlockS250A retrieves user data stored by the social networking system andimplements the user data to select the electronic store that isparticularly relevant to the first user. For example, Block S250A cananalyze user transaction history, likes, shares, posts, reposts,demographic information, browsing history, level of engagement in socialcommentary within the social networking system, friend or connectioncount, etc. to identify online or brick-and-mortar stores previouslyvisited by the first user, user shopping trends, a user interest, otherbrands or products of interest to the first user (e.g., another productwhich the first user may purchase with the first product), shopping,payment, and/or shipping preferences, etc. From this information, BlockS250A can select a particular electronic storefront, from a list ofavailable or preferred electronic storefronts, that is particularlyrelevant to the first user. For example, Block S250A can select theparticular electronic storefront through which the first user haspreviously shopped, that carries multiple brands preferred by the firstuser, that retains past shipping and billing information of the firstuser, etc. and set the first hotspot to link to the particularelectronic storefront. In another example, Block S250A can retrievelocation data of the first user (e.g., via GPS or cellular data from amobile computing device carried by the first user), filter a set ofbrick-and-mortar storefronts down to local storefronts based on thefirst user's location, and select the particular local storefront thatcarries other items and/or brands of potential interest to the firstuser. In this example, Block S250A can then set the first hotspot tolink to an information page for the particular local storefront. BlockS250A can further implement the first user's data to anticipate aninterest of the first user in any other (i.e., unrelated) product orbrand and to select the particular electronic or local storefront thatalso carries the other product or brand. Block S250B can implementsimilar techniques to select the second link for the second hotspotsubstantially in real time when the second user opens, views, orotherwise accesses the image. However, Blocks S250A and S250B canfunction in any other way to source links to electronic storefronts thatfacilitate purchase of the first and second products.

Block S280A of second method S200 recites selectively displaying a firstvisual cue of the first link and a second visual cue of the second linkto a first user and to a second user, respectively, according to ademographic of the first user and a demographic of the second user, thefirst visual cue contiguous with the image in the social feed viewed bythe first user and the second visual cue contiguous with the image inthe social feed viewed by the second user. Generally, Block S280Afunctions to display visual cues of different hotspots in the imagebased on a characteristic of a user viewing the image, as shown in FIG.13. Block S280A can select a visual cue of a hotspot to display to auser based on any one or more of an age, gender, education, race orethic background, occupation, income level, browsing history, likes,posts, reposts, shares, or pins within the social networking system,transaction history, etc. Block S280A can additionally or alternativelyselect a visual cue of a hotspot to display to a user based on any userinterest entered into the social networking system or estimated in BlockS280A. For example, Block S280A can estimate a user interest based onbrowsing history, any of the foregoing user data stored in the socialnetworking system, or aggregated positive responses to posts within thesocial networking system. Block S280A can therefore determine aninterest of the first and/or second users and selectively display thefirst and second visual cues according to a correlation between a userinterest and a product corresponding to a visual cue displayed to auser.

In one example implementation, Block S280A selects the visual cue basedon the gender of a user. In one example in which the image is of a mansitting on a motorcycle and conversing with a woman, Block S280A candisplay a first visual cue indicating a first hotspot on the motorcyclewhen a first user who is a male views the image, and Block S280A candisplay a second visual cue indicating a second hotspot on the woman'sshoes when a second user who is a female views the image. In anotherexample implementation, Block S280A selects the visual cue based on aperceived interest of a user. In the foregoing example in which theimage is of a man sitting on a motorcycle and conversing with a woman,Block S280A can display a first visual cue indicating a first hotspotover the whole motorcycle when a first user views the image, and BlockS280A can display a second visual cue indicating a second hotspot over acustom wheel on the motorcycle when a second user views the image. Inthis example, Block S280A can determine that the first user isinterested in motorcycles based on the first user's browsing history andthat the first user can afford a new motorcycle based on the currentaverage salaries for an occupation entered into the first user's socialnetworking profile. Furthermore, in this example, Block S280A candetermine that the second user is interested in custom motorcycle wheelsbased on search strings entered by the second user and that the seconduser can afford new motorcycle wheels based on the second user's recenttransaction history.

Block S280A can therefore display to a user a particular visual cue thatcorresponds to a product or brand that is of particular interest or needto the user, thereby targeting advertisement of a particular brand orproduct or a subset of brands and/or products represented in the imageand most likely to effect the user to make a purchase. Block S280A canimplement this functionality by analyzing user-specific data, such asdata entered into the social networking system by the user or usertransaction or browsing history. Alternatively, Block S280A canimplement this functionality by grouping a user into a demographic- orcharacteristic-dependent advertising “bucket,” including other users ofsimilar characteristics or demographics, based on stored user data.However, Block S280A can selectively display a visual cue for a userviewing the image according to any other characteristic or combinationof characteristics of the user.

Block S280A can selectively display a visual cue of a hotspot within theimage when the image is viewed, by a user, within his personal socialfeed (e.g., when the user subscribes to a brand feed and the image istagged with a product by the brand and automatically posted to theuser's feed), when viewed within a private or semi-private social feedof a friend or connection of the user, when viewed in a public orsemi-private social feed of a brand, merchant, or product, when viewedthrough any other feed within the social networking system, or whenviewed through a third-party website or interface associated with thebrand or located near a business associated with the brand.

Block S280A can implement functionality similar to Block S180 of firstmethod S100 described above to display a visual cue. In one exampleimplementation, Block S280A displays a visual cue by highlighting theimage with a colored border when viewed by a user. In this exampleimplementation, the first and second visual cues can be substantiallyidentical but indicate the presence of different hotspots within theimage based on characteristics of the first and second users. In anotherexample implementation, Block S280A can display a first pulsing virtualbutton over the first region (e.g., first hotspot) of the image whenviewed by the first user, and Block S280A can display a second pulsingvirtual button over the second region (e.g., second hotspot) of theimage when viewed by the second user. However, Block S280A can displaythe first, second, and/or other visual cues in any other suitableform(s) or size. The first and second visual cues can be substantiallyidentical or otherwise substantially unique, such as dependent on (e.g.,unique to) an associated item (e.g., product or brand) in the image, apreference of a user, a number of items advertised to a user in oneimage, a time of day or season, or a user characteristic or history.Block S280A can also adjust a visual cue for a particular hotspot in theimage based on how many times a user has viewed the image and/or visualcue, a device on which a user views the image (e.g., laptop computer,smartphone, or tablet), a browser or native application through which auser views the image, past user responses (e.g., likes, reposts,comments) to the image, a similar image, the brand, the product, or asimilar product, etc.

Block S280A can also display the first visual cue without the secondvisual cue when the first user views the image, and Block S280A cansubstantially simultaneously display the second visual cue without thefirst visual cue when the second user views the image. Block S280A canalso display both the first visual cue and the second visual cue whenthe first user views the image, such as if Block S280A determines firstuser interest in both the first and second items in the image, and BlockS280A can substantially simultaneously or later display the secondvisual cue without the first visual cue when the second user views theimage. However, Block S280A can display the visual cues to the first andsecond users in any other suitable combination, and Block S280A canfunction in any other way to selectively display the first and secondvisual cues with the image when viewed by the first and second users.

As shown in FIG. 5, Block S280B of one variation of second method S200recites, at a first time, displaying a first visual cue of the firstlink contiguous with the image in the social feed viewed by a user.Similarly, as shown in FIG. 5, Block S280C of one variation of secondmethod S200 recites, at a second time later than the first time,displaying a second visual cue of the second link contiguous with theimage in the social feed viewed by the user. Generally, Blocks S280B andS280C function to advertise different items to a user viewing the imageover time and/or at different times, as shown in FIG. 14. Blocks S280Band S280C can apply visual cues as described above or any other suitablevisual cue to visually indicate to a user the availability of one ormore hotspots on the image.

In one implementation, Block S280C updates the first visual cuedisplayed by Block S280B by replacing the first visual cue for a firstitem in the image with a second visual cue for a second item in theimage once the user has viewed the image for a threshold viewing time.In this example implementation, the threshold viewing time can becontinuous, such as six continuous viewing seconds. Alternatively, thethreshold viewing time can be discontinuous, such as a total of sixviewing seconds over multiple views of the image by the user. In thisimplementation, second method S200 can set the threshold viewing time,such as based on an age or demographic of the user. For example, secondmethod S200 can set the threshold viewing time as four seconds for ateenage user and six seconds for a user in his sixties.

In another implementation, Block S280B displays the first visual cue tothe user when the user first views the image, and Block S280C displaysthe second visual cue to the user when the user returns to the image ata later time, as shown in FIG. 14. For example, second method S200 cantransition from Block S280B to Block S280C when the user returns to theimage after selecting the first hotspot. In another example, secondmethod S200 can transition from Block S280B to Block S280C once the userviews the image for a first time in a social feed, scrolls through thesocial feed or navigates to the another page or application, and thenreturns to the image or views the image in another social feed. However,Blocks S280B and S280C can function in any other way to display thefirst and second visual cues to a user over time.

As shown in FIG. 6, one variation of second method S200 includes BlockS260, which recites directing the first user to the first electronicstorefront in response to selection of the first visual cue by the firstuser. Block S260 can similarly direct the (first or) second user to thesecond electronic storefront in response to selection of the secondvisual cue by the (first or) second user. Generally, Block S160Bfunctions similar to Block S160B of first method S100 to direct a userto brand- and/or product-related content when the user selects a visualcue displayed on, around, or adjacent the image. For example, Block S260can direct the first user to a product page of a first merchant withinthe social networking system when the first user selects a relatedhotspot. In this example, the product page can include a curated set ofphotos of products offered by the first merchant. In another example,Block S260 can direct the first user to a first electronic storefrontthrough which the first user can purchase a product associated with thefirst hotspot.

Block S260 can capture user selection of a hotspot when a user swipesthe image horizontally across a touch-sensitive display (touchscreen),when a user taps or touches an area of the touch display thatcorresponds to a hotspot, when a user selects the hotspot with a mouseor stylus, or when the user interacts with the image or a portion of theimage in any other way. Once Block S260 receives a hotspot selectionfrom the user, Block S260 can further direct the user to the onlinestorefront, brick-and-mortar store information page, or other targetpath associated with the hotspot in Block S250A or Block S250B, etc.Block S260 can also capture user selection of a hotspot throughvoice-activated interactions.

In one implementation, Block S260 cooperates with Block S250A and/orBlock S250B to retrieve user location data through a mobile computingdevice carried by the user in response to selection of the visual cue,to identify a brick-and-mortar retail outlet of a merchant proximal theuser based on the user's location data, and to display a location of thebrick-and-mortar retail outlet and product availability at the retailoutlet when the user selects the visual cue. However, Block S260 canfunction in any other way to direct users to the electronic orbrick-and-mortar storefront information in response to selection ofvisual cues.

3. Third Method

As shown in FIG. 7, a third method S300 for displaying a product-relatedimage to a user while shopping includes: loading an image to a socialnetworking system in Block S310; receiving a tag includingidentification of an item visible in a region of the image in BlockS320; based on the tag, correlating the item with a product in BlockS340; posting the image to a social feed within the social networkingsystem, the social feed including a set of photos related to the productin Block S312; receiving a scan from a user, the scan generated througha mobile computing device carried by the user in Block S350; correlatingthe scan with the product in Block S360; and displaying the image withina social networking interface accessible by the user through a displayof the mobile computing device in Block S370.

Generally, third method S300 functions to aggregate product-relatedimages into an image feed and to share this feed with a user when theuser expresses an interest in, identifies, or provides informationrelated to the product, as shown in FIG. 15. Third method S300 cantherefore be applicable to an in-store user shopping experience toprovide a user with product-related images in a timely fashion beforethe user completes a purchase, thereby enabling the user to see theproduct in use, see how the product fits, or see what other products,styles, or accessories function with or complement the product. Forexample, a user can enter a product SKU number, scan a barcode on theproduct, enter a product-related keyword search, select the product in abrand's social feed within the social networking system, take aphotograph of the product, etc. through a user interface (e.g., a nativeapplication) on a mobile computing device (e.g., smartphone). Thirdmethod S300 can then identify the product based on information providedby the user, select an image feed related to the product, and direct theuser to the image feed through the user interface on the mobilecomputing device. Third method S300 can additionally or alternativelyaggregate images related to the product into the image feed based oninformation provided by the user and provide a link to the image feed.

As in first method S100 and second method S200, images in the feed canbe professional (i.e., official) marketing or branding images, and/orthe images can be amateur (i.e., unofficial) images, such as uploadedand tagged by one or more private users within the social networkingsystem. Third method S300 can therefore enable the user to viewprofessional, amateur, or a combination of professional and amateurimages related to a particular product, such as when shopping for theproduct, third method S300 thereby providing the user with augmentedproduct-related information substantially in real time to enable theuser to make a more informed purchase.

Like first method S100 described above, third method S300 can beimplemented by a computer system, such as through an onlinephoto-sharing platform or a social networking system that executes onthe computer system and receives identification information of a productfrom a user, selects an image feed with images related to the product,and directs the user to the image feed. The computer system can be acloud-based computer (e.g., Amazon EC2), a mainframe computer system, agrid-computer system, or any other suitable computer system. Thecomputer system can further implement first method S100 and/or secondmethod S200 in combination with method S300 to upload, tag, andaggregate product- and/or brand-related images as product or brandadvertisements to entice user purchases through electronic orbrick-and-mortar storefronts. For example, the computer system canupload photos and associated product tags over a distributed network,such as over the Internet, and one or more processors throughout thedistributed network can implement one or more Blocks of first methodS100, second method S200, and/or third method S300 to identify a commonproduct in various images, aggregate the images into a social (e.g.,image) feed, and push the social feed to a user when the user isshopping for the product, a similar product, a related product, orproduct by the same brand or in the same product line. The user can thenaccess images in the social feed through a web browser or nativeapplication executing on a computing device, such as a laptop computer,a desktop computer, a tablet, a smartphone, a personal data assistant(PDA), a personal music player, etc. However, third method S300 can beimplemented on or by any other one or more computer systems, services,networks, computing devices, etc.

Block S310 of third method S300 recites loading an image to a socialnetworking system, Block S320 of third method S300 recites receiving atag including identification of an item visible in a region of the imagein Block S320, and Block S340 of third method S300 recites, based on thetag, correlating the item with a product in Block S340. Generally,Blocks S310, S320, and S340 implement techniques and methods similar tothose of Blocks S110 and S210, Blocks S120 and S220, and Blocks S140Band S240A, respectively, to upload and tag images to the socialnetworking system.

Block S312 of third method S300 recites posting the image to a socialfeed within the social networking system, the social feed including aset of photos related to the product. Once the image is uploaded andtagged in Blocks S310 through S340, Block S312 functions to aggregateimages containing content related to a particular brand or product byposting images sharing similar brand and/or product tags to a socialfeed within the social networking system. In one implementation, BlockS312 posts the image to a product feed within the social networkingsystem, such as a feed hosted by a related brand or a merchant thatsells the product, wherein the feed includes a combination of amateurimages from private users and professional images from marketingcampaigns. Block S312 can thus assemble a variety of images depictingdifferent uses or use scenarios of the product. Block S312 can alsoadjust an order or rank of images in the social feed, such as based onimage quality, lighting, size, users views, user likes, reposts, repins,number of tags or hotspots, etc. Block S312 can also arrange images inthe feed based on predefined settings, such as two amateur images forevery professional image or common colors amongst images. For example,Block S312 can arrange all bright images with orange, yellow, and lightblue colors near the top of the social feed at the beginning of Spring,and Block S312 can arrange all darker images with browns, deep reds, andgreens near the top of the social feed at the beginning of Fall.

Block S312 can further share the image across the social networkingsystem, such as by posting the image to a private or semi-private feedof various users. Block S312 can also cooperate with Block S340 tocorrelate the product with a particular merchant and to post the imageto a social feed of the particular merchant. Similarly, Block S312 cancooperate with Block S340 to correlate the product with a particularbrand and to post the image to a social feed of the particular brand.However, Block S312 can function in any other way to post the image to asocial feed that includes a set of photos related to the product.

Block S350 of third method S300 recites receiving a scan from a user,the scan generated through a mobile computing device carried by theuser. Generally, Block S350 functions to collect product-relatedinformation from the user through a mobile computing device while theuser is in a brick-and-mortar store, as shown in FIG. 15. Block S350 cancollect product-related information in the form of a scan, photographicimage, decrypted barcode or image information, user-entered information,user location data, etc. Block S350 can receive the scan wirelessly fromthe mobile computing device carried by the user, such as over a cellularnetwork or via a wireless (e.g., Wi-Fi) Internet connection. Bycollecting product information, Block S350 can enable Block S360 toidentify a product of interest to the user, thereby enabling Block S370to select the social feed and/or images from the social feed that arerelevant to the user.

In one example implementation, Block S350 receives the scan thatincludes a barcode scan of a physical tag on an item in the store, asshown in FIG. 15. In this implementation, the barcode scan can include aphotographic image of a one-dimensional barcode, a two-dimensionalbarcode, a quick response (QR) code, or other suitable type of barcode.Block S350 can alternatively receive decrypted barcode information, suchas from a shopping application executing on a user's mobile computingdevice and implementing machine vision techniques to analyze images ofbarcodes captured through the device's integrated camera. For example,Block S350 can receive a photograph of a tag captured through an opticalsensor (e.g., camera) integrated into a mobile computing device (e.g.,smartphone) carried by the user. Block S350 can then implement machinevision to identify a barcode in the image. Block S360 can subsequentlydecode the barcode through standard barcode decryption techniques andaccess a barcode database to identify the product attached to thephysical tag. Alternatively, Block S350 can receive decrypted barcodeinformation from a barcode scanning application executing on the mobilecomputing device, and Block S360 can implement the received decryptedbarcode information to identify the product. Block S350 can similarlyimplement machine visual techniques to extract a stock keeping unit(SKU) number from an image of a physical product tag or any other text-or symbol-based product identifier from an image of a portion of theproduct or attached physical tag.

In another implementation, Block S350 receives a digital photograph ofthe product and implements machine vision and/or machine learningtechniques to identify the product. For example, Block S350 canimplement edge detection and template matching to identify the productin the photograph. Block S350 can also receive location information fromthe user's mobile computing device, such as a GPS location from a GPSsensor or a triangulated cellular position, to determine which store theuser is currently occupying. Based on the store occupied by the user,Block S350 can identify the product in the image from a set of knownproducts carried in the store. Additionally or alternatively, Block S350can receive keywords from the user to guide identification of theproduct in the photo, such as a brand or product type (e.g., shirt,pant, blouse, shoe, motorcycle).

In other implementations, Block S350 receives textual productinformation entered by the user. In one example, Block S350 receives atextual description of the item, such as brand and product line or makeand model number. In another example, Block S350 receives a SKU number,serial number, vehicle identification number (VIN), product code, orother number-based identifier of the brand or product. Block S350 canalso receive data scanned from a near-field communication (NFC) chip,radio-frequency identification (RFID) chip, or other wireless chipembedded in or incorporated into the product or into a tag coupled to orarranged on the product. However, Block S350 can receive product-relatedinformation in any other form or format. Block S350 can also beimplemented by the social networking system, by a remote server, by anative application executing on the user's mobile computing device, orby any other suitable entity.

Block S360 of third method S300 recites correlating the scan with theproduct. Generally, Block S360 functions to analyze product informationreceived in Block S350 to determine the product of current interest tothe user, as shown in FIG. 15. Therefore, Block S360 can functionsubstantially in real time to associate the scan (e.g., barcode scan,photographic image of the product) with the product such that thirdmethod S300 can provide the user with access to images of the productwhile the user is shopping. Block S360 can also identify the productdown to any suitable resolution. For example, Block S360 can identifythe product as one item in a clothing line by a particular brand, aparticular shirt style in a clothing line by a particular brand, or ashirt of a particular style in a clothing line by a particular brand andin a certain size and color. In another example, Block S360 can identifythe product as a vehicle by a particular automotive manufacturer, avehicle of a particular a make and model, a vehicle of a particular amake, model, year, and body style with particular options, or a specificvehicle with a specific VIN. As described above, Block S360 can access aproduct database to identify the product based on the productinformation sourced by Block S350. However, Block S350 can function inany other way to correlate the scan with the product.

Block S370 of third method S300 recites displaying the image within asocial networking interface accessible by the user through a display ofthe mobile computing device. Generally, Block S370 functions tocommunicate additional product information, through product-relatedimages, to the user substantially in real time, as shown in FIG. 15.Block S370 can thus provide relevant product-related information to theuser when substantially relevant to the user (i.e., when the user isshopping for the product). Additionally or alternatively, Block S370 cantarget visual advertisements to the user through product-related imageswhen the user is in a prime position to purchase the product (e.g., whenthe user is standing next to or holding the product). As describedabove, the social networking interface can be implemented through anative application executing on the mobile computing device (e.g., anative social networking application), through a web browser executingon the mobile computing device (e.g., web browser that accesses thesocial networking system), or through any other suitable application,system, service, or software.

In one implementation, Block S370 pushes the social feed, including theimage correlated with the product in Block S340, to the user's mobilecomputing device (e.g., smartphone). For example, Block S370 cancommunicate electronic images in the social feed to a native socialnetworking application executing on the mobile computing device or to aweb browser executing on the mobile computing device. Block S370 canalso communicate metadata of the images to the mobile computing device,such as brand or product tags, hotspots, links, origin, likes, orreposts. Block S370 can similarly communicate additional productinformation, such as a product description, where the product was made,product materials, a brand description, a brand mission statement,information or locations of local merchants that carry the product,similar products by other brands, local or online sale offers for theproduct, another local merchant offering the product for sale and alocal or overage product price, other products that complement theproduct (e.g., shoes that pair well with a pair of pants), or a recipethat includes the product (e.g., a clam chowder recipe for the productthat is fresh clams). The mobile computing device can then display thesocial feed including the image, image metadata, and/or product data onan integrated display or touchscreen. For example, the mobile computingdevice can display the image serially within a set of photos related tothe product. In another implementation, Block S370 pushes a link, suchas a hyperlink, to the user's mobile computing device, wherein the linkdirects the user to the image feed or other related product information.

In an illustrative example, Block S310 uploads an amateur photograph ofa man sitting on a motorcycle and conversing with a woman. Blocks S320and S340 cooperate to add various tags to the image and to correlate theimage with various products, including a particular model of motorcycleby a particular manufacturer and a particular style blouse, worn by thewoman, by a particular brand. Block S312 can add the image to a firstimage feed for the particular style and brand of blouse and to a secondimage feed for the particular motorcycle manufacturer. A first user whois a woman shopping in a local store can scan an RFID tag on a tagattached to the product that is the blouse. Block S350 can retrieve datafrom the RFID scan, and Block S360 can identify the style and brand ofthe blouse based on the RFID data. Block S370 can then communicate thefirst image feed, including images of the style and brand of blouse, tothe first user's mobile computing device, thereby enabling the firstuser to see images of other women wearing the same or similar blouse,such as in both professional and amateur images. Similarly, a seconduser walking passed a biker bar can take a digital photograph of a brandbadge on a gas tank of a parked motorcycle. Block S350 can retrieve thephotograph, and Block S360 can implement template matching to identifythe motorcycle manufacturer from the photograph. Block S370 can thencommunicate the second image feed, including images of motorcycles bythe manufacturer and in various configurations, to the second user'smobile computing device, thereby enabling the second user to accessadditional information related to the motorcycle, to see variousmotorcycle configurations or options, and/or to learn about local shopsthat sell motorcycles by the manufacturer.

Additionally or alternatively, Block S370 can communicate information,images, or feeds pertaining to other products offered by the local store(e.g., merchant) occupied by (or near) the user. For example, theproduct image can be displayed, on the user's mobile computing device,in line with a set of photos of other products offered by the localstore and identification information of the store. Block S370 cansimilarly communicate information, images, or feeds pertaining to otherproducts offered by the brand and/or an advertisement for the product.

Block S370 can further rank and/or filter images in the feedcommunicated to the user's mobile computing device. For example, BlockS370 can access the user's social networking profile within the socialnetworking system to retrieve or determine user preferences, predictinterests, or estimate images or advertisement types or styles mosteffective in effecting a user purchase. Additionally or alternatively,Block S370 can access user transaction history (e.g., user credit cardhistory) to extract user buying preferences or trends. Block S370 canthen arrange images in the image feed displayed to the user such thatimages most relevant to the user and/or most likely to evoke a positivereaction from the user are displayed first on the user's mobilecomputing device. For example, the user can scroll serially throughranked and/or filtered images displayed on the user's mobile computingdevice via the social networking interface. However, Block S370 canfunction in any other way to display the image to the user.

As shown in FIG. 8, one variation of third method S300 further includesBlock S380, which recites identifying a purchase of the product by theuser and correlating the advertisement with the purchase. In oneimplementation, Block S380 accesses recent user transaction data (e.g.,user credit card history) to determine that the user purchased theproduct and compares the product purchase with images of the productviewed by the user prior to (and around the time of) purchase. Inanother implementation, Block S380 accesses a recent post to the socialnetworking system by the user, analyzes the post to determine that theuser purchased the product, and correlates the product purchase withimages of the product viewed by the user prior to (and around the timeof) purchase. Generally, Block S380 can implement methods and techniquesdisclosed in U.S. Patent Application No. 61/849,813, which isincorporated in its entirety by reference, to determine a causal linkbetween a user purchase of a product and user access to additionalproduct images and information just prior to purchase. Block S380 canthus estimate an effectiveness of images in the social feed asadvertisements for the product. However, Block S380 can function in anyother way to identify a purchase of the product by the user and tocorrelate access to product-related images with a product purchase.

4. Social Networking System

FIG. 9 is a Block diagram of a system environment for a socialnetworking system 704. The system environment, shown in FIG. 9, includesa social networking system 704, a client device 708, a merchant system712, a financial transaction service provider 114, and a network 740.Alternatively, the system environment can include different and/oradditional components than those shown in FIG. 9.

The social networking system 704, further described below in conjunctionwith FIG. 10, includes one or more computing devices storing userprofiles associated with users and/or other objects as well asconnections between users and other users and/or objects. In use, usersjoin the social networking system 704 and then add connections to otherusers or objects of the social networking system to which they desire tobe connected. As further described below in conjunction with FIG. 10,users of the social networking system 704 can be individuals or entitiessuch as businesses, organizations, universities, or manufacturers. Thesocial networking system 704 allows its users to interact with eachother as well as with other objects maintained by the social networkingsystem 704. The social networking system 704 can therefore allow usersto interact with third-party websites, such as the merchant system 712and the financial transaction service provider 716. In oneimplementation, third-party developers can enable users of the socialnetworking system to express interest in web pages hosted on websitesexternal to the social networking system (i.e., third-party websites).These web pages can be represented as page objects in the socialnetworking system as a result of embedding a widget, a social plug-in,programmable logic or code snippet into the web pages, such as aniFrame. Any concept that can be embodied in a web page can become a nodein the social graph on the social networking system in this manner. As aresult, users can interact with many objects external to the socialnetworking system. Each of the interactions with an object can berecorded by the social networking system as an edge. These interactionscan be used, for example, to identify a gift-appropriate event of therecipient. Enabling third-party developers to define object types andaction types is further described in a related application, “StructuredObjects and Actions on a Social Networking System,” U.S. applicationSer. No. 13/239,340 filed on Sep. 21, 2011, which is hereby incorporatedby reference. In one embodiment, the interaction can be a commentassociated with a content object hosted by a third party system, asfurther described in a related application, “Comment Plug-In for ThirdParty System,” U.S. application Ser. No. 12/969,368 filed on Dec. 15,2010. As such, the electronic communication may be entered into acomment field of an embedded widget, a social plug-in, programmablelogic or code snippet into a third party web page, such as an iFrame.

Based on stored data about users, objects and connections between usersand/or objects, the social networking system 704 generates and maintainsa “social graph” including a plurality of nodes interconnected by aplurality of edges. Each node in the social graph represents an objector user that can act on another node and/or that can be acted on byanother node. An edge between two nodes in the social graph represents aparticular kind of connection between the two nodes, which can resultfrom an action that was performed by one of the nodes on the other node.For example, when a user identifies an additional user as a friend orconfirms a friend request from another user, first method S100 cangenerate an edge in the social graph generated connecting a noderepresenting the first user and an additional node representing theadditional user. The generated edge has a connection type indicatingthat the users are friends. As various nodes interact with each other,the social networking system 704 modifies edges connecting the variousnodes to reflect the interactions.

A client device 708 is a computing device capable of receiving userinput as well as transmitting and/or receiving data via the network 740.In one implementation, the client device 708 is a conventional computersystem, such as a desktop or laptop computer. In another implementation,the client device 708 can be a device having computer functionality,such as a personal digital assistant (PDA), mobile telephone,smart-phone or similar device. The client device 708 is configured tocommunicate with the social networking system 704, the merchant system712 and/or the financial transaction service provider 716 via thenetwork 740. In one implementation, the client device 708 executes anapplication allowing a user of the client device 708 to interact withthe social networking system 704. For example, the client device 708executes a browser application to enable interaction between the clientdevice 708 and the social networking system 704 via the network 740. Inanother implementation, a client device 708 interacts with the socialnetworking system 704 through an application programming interface (API)that runs on the native operating system of the client device 708, suchas iOS or ANDROID operating system.

The client devices 708 are configured to communicate via the network740, which can include any combination of local area and/or wide areanetworks, using both wired and wireless communication systems. In oneimplementation, the network 740 uses standard communicationstechnologies and/or protocols. Thus, the network 740 can include linksusing technologies such as Ethernet, 802.11, worldwide interoperabilityfor microwave access (WiMAX), 3G, 4G, CDMA, digital subscriber line(DSL), etc. Similarly, the networking protocols used on the network 740can include multiprotocol label switching (MPLS), transmission controlprotocol/Internet protocol (TCP/IP), User Datagram Protocol (UDP),hypertext transport protocol (HTTP), simple mail transfer protocol(SMTP) and file transfer protocol (FTP). Data exchanged over the network740 can be represented using technologies and/or formats includinghypertext markup language (HTML) or extensible markup language (XML). Inaddition, all or some of the links can be encrypted using conventionalencryption technologies such as secure sockets layer (SSL), transportlayer security (TLS), and Internet Protocol security (IPsec).

The merchant system 712 includes one or more servers providing contentassociated with a merchant. For example, the merchant system 712provides web pages describing products and/or services sold by one ormore vendors. The merchant system 712 can also perform other functionsto allow the merchant to provide products or services in exchange forcompensation. Examples of functions provided by the merchant system 712include maintaining accounts for purchasers, tracking inventory levels,modifying pricing of products or services, obtaining compensation forproducts or services from the financial transaction service provider 716and/or other suitable actions. The merchant system 712 communicates withthe social networking system 704, and/or the financial transactionservice provider 716 via the network 740.

The financial transaction service provider 716 processes virtualcurrency transactions between a merchant and a customer, such as credit,debit, private-label, gift, payroll, a prepaid card, and/or othervirtual currency, credit, or debit transaction. The financialtransaction service provider 716 therefore directs a fund from afinancial account of a consumer to a financial account of a merchant inresponse to a consumer purchase and can further direct a fund from amerchant to a consumer, such as in response to a return or exchange. Thefinancial transaction service provider 716 can further provide fraudprotection and authentication solutions, electronic check acceptanceservices, and/or Internet commerce and mobile payment solutions.

FIG. 10 is a Block diagram of a system architecture of the socialnetworking system 704. The social networking system 704 shown in FIG. 10includes a user profile store 804, a content store 808, an edge store820, an action logger 812, an action log 816, a suggestion engine 824, afinancial account store 828 and a web server 832. Alternatively, thesocial networking system 704 can include additional, fewer, or differentmodules for various applications. Conventional components such asnetwork interfaces, security mechanisms, load balancers, failoverservers, management and network operations consoles, and the like arenot shown so as to not obscure the details of the system architecture.

Each user of the social networking system 704 is associated with a userprofile, which is stored in the user profile store 804. A user profileincludes declarative information about the user that was explicitlyshared by the user, and can also include profile information inferred bythe social networking system 704. In one implementation, a user profileincludes multiple data fields, each data field describing one or moreattributes of the corresponding user of the social networking system704. The user profile information stored in user profile store 804describes the users of the social networking system 704, includingbiographic, demographic, and other types of descriptive information,such as work experience, educational history, gender, hobbies orpreferences, location and the like. A user profile can also store otherinformation provided by the user, for example, images or videos. Imagesof users can be tagged with identification information of users of thesocial networking system 704 displayed in an image. A user profile inthe user profile store 804 can also maintain references to actions bythe corresponding user performed on content items in the content store808 and stored in the edge store 820.

A user profile can be associated with one or more financial accounts,which enables tracking of prepaid gifts and redemption of those giftswhen using an associated financial account. A user can specify one ormore privacy settings, which can be stored in the user profile. Theprivacy settings can specify the content and quantity of (personal) userdata that can be tracked, shared, and/or accessed by the socialnetworking system 704. In one implementation, information from thefinancial account is stored in the user profile store 804.Alternatively, information can be stored in the financial account store828.

The content store 808 stores content items associated with a userprofile, such as images, videos or audio files. Content items from thecontent store 808 can be displayed when a user profile is viewed or whenother content associated with the user profile is viewed. For example,displayed content items can show images or video associated with a userprofile or show text describing a user's status. Additionally, othercontent items can facilitate user engagement by encouraging a user toexpand his connections to other users, to invite new users to the systemor to increase interaction with the social network system by displayingcontent related to users, objects, activities, or functionalities of thesocial networking system 704. Examples of social networking contentitems include suggested connections or suggestions to perform otheractions, media provided to, or maintained by, the social networkingsystem 704 (e.g., pictures or videos), status messages or links postedby users to the social networking system, events, groups, pages (e.g.,representing an organization or commercial entity), and any othercontent provided by, or accessible via, the social networking system.

The content store 808 also includes one or more pages associated withentities having user profiles in the user profile store 804. An entityis a non-individual user of the social networking system 704, such as abusiness, a vendor, an organization or a university. A page includescontent associated with an entity and instructions for presenting thecontent to a social networking system user. For example, a pageidentifies content associated with the entity's user profile as well asinformation describing how to present the content to users viewing thebrand page. Merchants associated with merchant systems 712, furtherdescribed above in conjunction with FIG. 9, can be associated with pagesin the content store 808, allowing social networking system users tomore easily interact with the merchant via the social networking system704. A merchant identifier is associated with a vendor's page, allowingthe social networking system 704 to identify the merchant and/or toretrieve additional information about the merchant from the user profilestore 804, the action log 816 or from any other suitable source usingthe vendor identifier.

The action logger 812 receives communications about user actions onand/or off the social networking system 704, populating the action log816 with information about user actions. Such actions can include, forexample, adding a connection to another user, sending a message toanother user, uploading an image, reading a message from another user,viewing content associated with another user, attending an event postedby another user, among others. Moreover, the actions can relate to amerchant. In one example, a user can “like” an object associated withthe merchant, for example, by explicitly making that indication on themerchant's page in the social network. In another example, a user cancomment on a merchant's page within the social network, share a storyfrom the merchant's page, tag a photo associated with the merchant or aproduct or service provided by the merchant, become a fan of themerchant, check-in to a brick-and-mortar store of the merchant, orsubscribe or follow the merchant. As described in U.S. patentapplication Ser. No. 13/239,340, which is incorporated herein in itsentirety by this reference, the edge store 820 can correlate any one ormore such user actions with an interest in the merchant or a product ofservice from the merchant, which can be useful in selection of anappropriate advertisement for the user.

The action log 816 can be used by the social networking system 704 totrack user actions on the social networking system 704, as well asexternal websites that communicate information to the social networkingsystem 704. Users can interact with various objects on the socialnetworking system 704, including commenting on posts, sharing links, andchecking-in to physical locations via a mobile device, accessing contentitems in a sequence or other interactions. Information describing theseactions can be stored in the action log 816, and the extent and contentof such interactions can be correlated with an affinity for the objects.Additional examples of interactions with objects on the socialnetworking system 704 included in the action log 816 include commentingon a photo album, communications between users, becoming a fan of amusician, adding an event to a calendar, joining a group, becoming a fanof a brand page, creating an event, authorizing an application, using anapplication and engaging in a transaction. Additionally, the action log816 records a user's interactions with advertisements on the socialnetworking system 704 as well as other applications operating on thesocial networking system 704. Data from the action log 816 is used toinfer interests or preferences of the user, augmenting the interestsincluded in the user profile and allowing a more complete understandingof user preferences.

The action log 816 can also store user actions on external websitesand/or determined from a financial account associated with the user. Forexample, an e-commerce website that primarily sells sporting equipmentat bargain prices can recognize a user of a social networking system 704through social plug-ins that enable the e-commerce website to identifythe user of the social networking system 704. Because users of thesocial networking system 704 are uniquely identifiable, e-commercewebsites, such as this sporting equipment retailer, can use theinformation about these users as they visit their websites. The actionlog 816 records data about these users, including webpage viewinghistories, advertisements that were engaged, purchases made, and otherpatterns from shopping and buying, such as in accordance with privacysettings of the user. Actions identified by the action logger 812 fromthe transaction history of a financial account associated with the userallow the action log 816 to record further information about additionaltypes of user actions.

In one embodiment, an edge store 820 stores information describingconnections between users and other objects on the social networkingsystem 704 as edge objects. Some edges can be defined by users, allowingusers to specify their relationships with other users. For example,users can generate edges with other users that parallel the users'real-life relationships, such as friends, co-workers, partners, etc.Other edges are generated when users interact with objects in the socialnetworking system 704, such as expressing interest in a page on thesocial networking system, sharing a link with other users of the socialnetworking system, and commenting on posts made by other users of thesocial networking system. The edge store 820 stores edge objects thatinclude information about the edge, such as affinity scores for objects,interests, and other users. For example, an affinity score between auser and a merchant can be stored. Affinity scores can be computed bythe social networking system 704 over time to approximate a user'saffinity for an object, interest, and other users in the socialnetworking system 704 based on the actions performed by the user.Multiple interactions between a user and a specific object can be storedin one edge object in the edge store 820, in one embodiment. Connectionsbetween users can be stored in the user profile store 804, or the userprofile store 804 can access the edge store 820 to determine connectionsbetween users.

In one implementation, the financial account store 828 includesfinancial account identifiers associated with user profiles and anassociation or mapping between a financial account and its correspondinguser profile. A user can include additional information about thefinancial account in the financial account store, such as a descriptionof the financial account and can also include authentication informationfor accessing the account such as names, passwords or other securitycredentials. In implementation in which information about user financialaccounts are stored in the financial account store 828, the socialnetworking system 704 can apply additional security measures(encryption, etc.) to the financial account store 828 to reduce the riskof unauthorized access to financial account information. Alternatively,financial account information can be included in the user profile store804 as data in a user's user profile. One or more privacy settings canbe applied to the financial account information to limit itsaccessibility to objects in the social networking system 704.

The suggestion engine 824 accesses data in the user profile store 804,in the action log 816, and/or the content store 808 either individuallyor in combination and identifies one or more candidate productsassociated with vendors in which a user is likely to have an interest.Generally, the suggestion engine can analyze the action log 816,identify user actions related to one or more merchants, products, orservices, calculate the user's affinity for one or more merchants,products, or services, and select a suitable advertisement for the userbased on the user's affinity. The suggestion engine 824 can also collectoffers for products from local merchants, wherein the products can becollected or fulfilled through a physical retail location and/or throughe-commerce. The suggestion engine 824 can further calculate an affinitybetween a user who is a (potential) recipient and a second user who is a(potential) sender, such as based on interactions between the usersincluding messages, posts, and/or other communications between the userswithin the social networking system, and select the second user as thesender based on the affinity between the users. The suggestion engine824 can subsequently recommend the selected gift to the sender andfacilitate sender purchase of the product for the recipient.

Actions between the user and pages maintained by the social networkingsystem stored in the action log 816 can be used by the suggestion engine824 to select candidate products. The suggestion engine 824 can analyzeactions involving the user and various pages in the content store 808 aswell as connections between the user and various pages in the edge store820 to select candidate products. For example, the suggestion engine 824selects candidate products based on the frequency of actions between theuser and a page, the number of interactions between the user and thepage, the type of connection between the user and a page, staleness ofthe interactions, a type of action between the user and a page or anyother suitable criteria.

The web server 832 links the social networking system 704 via thenetwork 740 to the client device 708, to the financial transactionservice provider 716 and/or to the merchant system 712. The web server832 serves web pages, as well as other web-related content, such asJava, Flash, XML and so forth. The web server 832 can provide thefunctionality of receiving and routing communications between the socialnetworking system 704 and the client device 708, for example, instantmessages, queued messages (e.g., email), text and SMS (short messageservice) messages, or messages sent using any other suitable messagingtechnique. A user can send a request to the web server 832 to uploadinformation, for example, images or videos that are stored in thecontent store 808. Additionally, the web server 832 can provideapplication programming interface (API) functionality to send datadirectly to native client device operating systems, such as iOS,ANDROID, webOS, or RIM operating system. The web server 832 alsoprovides API functionality for exchanging data, such as financialaccount information, between the social networking system 704 and thefinancial transaction service provider 716.

The image can be one form of user-generated “content” accessible throughthe social networking system to enhance a user experience. However,“content” can include any type of media content, such as a statusupdate, textual message, location information, photo, video,advertisement, or web link. Content “items” can define pieces of contentthat are represented as objects within the social networking system.Thus a user of the social networking system may be encouraged tocommunicate with another user by “posting” content items of one or moretypes through various communication channels within the socialnetworking system, which can increase length and/or frequency ofinteraction between the users through social networking system. Forexample, a communication channel can be a “stream” through which aseries of content items posted, uploaded, or otherwise provided to thesocial networking system are shared with one or more users. In thisexample, the stream can also be updated as one or more users add contentitems to the stream. Additionally or alternatively, the a communicationchannel can be as disclosed in U.S. patent application Ser. No.12/253,149, filed on 16 Oct. 2008, which is incorporated herein in itsentirety by this reference.

Content sharing between users can also be limited. For example, a usercan post a video from a company presentation to the social networkingsystem, wherein the video is not appropriate for sharing across all ofthe user's connections (e.g., connections that include employees ofcompeting companies). In this example, the user can thus desire toconfine accessibility to the video to a select audience. Therefore, thesocial networking system can enable a user to modify how content itemsare shared throughout the social networking system. For example, thesocial networking system can enable the user to designate a privacysetting for a content item, wherein the privacy setting defines a set ofusers who have access to the content item posted to a communicationchannel. The privacy setting can therefore enables the user to hidespecific content items from certain connections or to target specificcontent items to a particular audience, thereby focusing contentdelivery to an individual or group of connections selected by the user.A connection not identified by a privacy setting can thus be blockedfrom viewing or otherwise accessing the content item. Privacy settingsare further described in U.S. patent application Ser. No. 12/154,886,filed on 27 May 2008, which is incorporated herein in its entirety bythis reference.

The social networking system can also enable the user to specify privacysetting at various levels of granularity. For example, the user canspecifically exclude certain connections from viewing a content item.Furthermore, once the user enters a custom privacy setting, the socialnetworking system can store the custom privacy setting for applicationto future posts. The privacy setting can also be modified for eachcontent item the user uploads at the time of upload, thereby enablingthe user flexibility in controlling access to the content item.Alternatively, the social networking system can enable the user toselect a default privacy setting for uploaded content items. The socialnetworking system can additionally or alternatively enable the user toedit a privacy setting for a content item after the content item wasposted. The user can thus confine accessibility to the content item to aselected audience retroactively. However, the social networking systemcan implement privacy settings through methods S100, S200, S300 in anyother suitable way.

The systems and methods of the embodiments can be embodied and/orimplemented at least in part as a machine configured to receive acomputer-readable medium storing computer-readable instructions. Theinstructions can be executed by computer-executable componentsintegrated with the application, applet, host, server, network, website,communication service, communication interface,hardware/firmware/software elements of a user computer or mobile device,or any suitable combination thereof. Other systems and methods of theembodiments can be embodied and/or implemented at least in part as amachine configured to receive a computer-readable medium storingcomputer-readable instructions. The instructions can be executed bycomputer-executable components integrated by computer-executablecomponents integrated with apparatuses and networks of the typedescribed above. The computer-readable medium can be stored on anysuitable computer readable media such as RAMs, ROMs, flash memory,EEPROMs, optical devices (CD or DVD), hard drives, floppy drives, or anysuitable device. The computer-executable component can be a processor,though any suitable dedicated hardware device can (alternatively oradditionally) execute the instructions.

As a person skilled in the art will recognize from the previous detaileddescription and from the figures and claims, modifications and changescan be made to the embodiments of the invention without departing fromthe scope of this invention as defined in the following claims.

We claim:
 1. A method comprising: loading an image to a social feedwithin a social networking system; receiving a first tag comprisingidentification of a first item visible in a first region of the image;associating the first tag with the first region of the image; based onthe first tag, correlating the first item with a first product; based onthe first product, sourcing a first link to a first electronicstorefront that facilitates purchase of the first product; receiving asecond tag comprising identification of a second item visible in asecond region of the image; associating the second tag with the secondregion of the image; based on the second tag, correlating the seconditem with a second product; based on the second product, sourcing a linkto a second electronic storefront that facilitates purchase of thesecond product; and selectively displaying a first visual cue of thefirst link and a second visual cue of the second link to a first userand to a second user, respectively, according to a demographic of thefirst user and a demographic of the second user, the first visual cuecontiguous with the image in the social feed viewed by the first userand the second visual cue contiguous with the image in the social feedviewed by the second user.
 2. The method of claim 1, further comprisingdirecting the first user to the first electronic storefront in responseto selection of the first visual cue by the first user.
 3. The method ofclaim 2, wherein directing the first user to the first electronicstorefront comprises directing the first user to a product page of afirst merchant within the social networking system, the product pagecomprising a curated set of photos of products offered by the firstmerchant.
 4. The method of claim 2, wherein directing the first user tothe first electronic storefront comprises directing the first user tothe first electronic storefront in response to selection of the firstlink by swiping the image horizontally across a display.
 5. The methodof claim 1, further comprising requesting access to first user locationdata through a mobile computing device carried by the first user inresponse to selection of the first visual cue, identifying a retailoutlet of a merchant proximal the first user according to the locationof the first user, and displaying a location of the retail outlet andproduct availability at the retail outlet to the first user.
 6. Themethod of claim 1, further comprising determining an interest of thefirst user based on a browsing history of the first user within thesocial networking system, wherein selectively displaying the firstvisual cue and the second visual cue comprises displaying the firstvisual cue in the social feed viewed by the first user according to anidentified correlation between the interest of the first user and thefirst product.
 7. The method of claim 6, wherein selectively displayingthe first visual cue and the second visual cue comprises displaying thesecond visual cue in the social feed viewed by the second user accordingto the demographic of the second user correlated with the secondproduct.
 8. The method of claim 6, wherein determining the interest ofthe first user comprises aggregating positive first user responses toposts within the social networking system and determining the interestof the first user based on content of the posts.
 9. The method of claim1, wherein loading the image to the social feed comprises receiving theimage from a third user, wherein receiving the first tag comprisesreceiving the first tag from the third user, and further comprisingrewarding the third user according to the first tag identifying thefirst item.
 10. The method of claim 1, wherein sourcing the link to thefirst electronic storefront comprises selecting the link from a list oflinks to electronic storefronts of promoted merchants.
 11. The method ofclaim 1, wherein selectively displaying the first visual cue and thesecond visual cue comprises highlighting the image in the social feedviewed by the first user with a colored border.
 12. The method of claim1, wherein selectively displaying the first visual cue and the secondvisual cue comprises displaying a first pulsing virtual button over thefirst region of the image in the social feed viewed by the first userand displaying a second pulsing virtual button over the second region ofthe image in the social feed viewed by the second user.
 13. The methodof claim 1, wherein selectively displaying the first visual cue and thesecond visual cue comprises displaying the first visual cue without thesecond visual cue in the social feed viewed by the first user andsubstantially simultaneously displaying the second visual cue withoutthe first visual cue in the social feed viewed by the second user. 14.The method of claim 1, wherein selectively displaying the first visualcue and the second visual cue comprises displaying the first visual cueand the second visual cue in the social feed viewed by the first userand substantially simultaneously displaying the second visual cuewithout the first visual cue in the social feed viewed by the seconduser.
 15. A method comprising: posting an image to a social feed withina social networking system; receiving a first tag comprisingidentification of a first item visible in a first region of the image;associating the first tag with the first region of the image; based onthe first tag, correlating the first item with a first product; based onthe first product, sourcing a first link to a first electronicstorefront through which to purchase the first product; receiving asecond tag comprising identification of a second item visible in asecond region of the image; associating the second tag with the secondregion of the image; based on the second tag, correlating the seconditem with a second product; based on the second product, sourcing a linkto a second electronic storefront through which to purchase the secondproduct; at a first time, displaying a first visual cue of the firstlink contiguous with the image in the social feed viewed by a user; andat a second time later than the first time, displaying a second visualcue of the second link contiguous with the image in the social feedviewed by the user.
 16. The method of claim 15, wherein displaying thesecond visual cue comprises displaying the second visual cue exclusiveof the first visual cue after a threshold period of time followingdisplay of the first visual cue.
 17. The method of claim 15, furthercomprising directing the user to the first electronic storefront inresponse to selection of the first visual cue.
 18. The method of claim15, wherein sourcing the link to the first electronic storefrontcomprises correlating the first product with a particular brand andselecting the link that comprises a link to brand content specified bythe particular brand.
 19. The method of claim 15, further comprisingdetermining an interest of the user based on browsing history of theuser within the social networking system, wherein displaying the firstvisual cue comprises selecting the first visual cue, from a set ofvisual cues, as an initial visual cue based on the determined interestof the user, the set of visual cues comprising the first visual cue andthe second visual cue.